Pythonで数値が浮動小数点数であるかどうかを確認する方法


ベストアンサー

Pythonでは、 type()関数。

数値がfloatの場合、コードはとにかく型を出力します。例:

a = 2 #integer

b = "Cosmos" #string

c = 3.4 #float

print(type(a))

print(type(b))

print(type(c))

出力には、それぞれのデータタイプが自然に表示され、変数cの値はfloat したがって、これはデータタイプがfloatであるかどうかを知る最も簡単で迅速な方法です。

希望役に立ちます:)

回答

言語によって異なります。一部の言語(JavaScriptなど)には、違いを区別するために使用できるtypeof演算子があります。 JavaScriptの場合でも、JavaScriptには整数のようなものがないため、これは役に立ちません。 JavaScriptには、整数と浮動小数点数の両方をカプセル化する統一された数値型があるため、そこで確認できる方法には、

n - Math.floor(n) > 0

// 3.14 - 3.00 = 0.14. 0.14 > 0.00

n.toString().indexOf(".") == -1

// indexOf() returns -1 when it can’t find the given substring

C(または静的な記名型システムを持つ言語)を使用している場合は、同様のことを行うことができます:

(n - (int) n) > 0

ここで起こることは、(int)演算子がそのオペランドを型キャストして、整数にすることです。これは小数部分を「切り取る」ため、JavaScriptのMath.floorと同じ効果があります。

ただし、注意点が1つあります。場合によっては、等式演算子には小さな差が小さすぎることがあります。 1 == 0.9999999999999999は偽ですが、1 == 0.99999999999999999は真です。たとえば、Cでは、実際には> 0> FLT\_EPSILONおよび#include に置き換える必要があります。 。 FLT\_EPSILONは、表現可能な最小のフロートを表す定数です。 2つのフロートを比較するときに使用でき、誤って等しく比較されないようにしてください。これを行うには、それらを減算し、差がFLT\_EPSILONより大きい(「等しくない」)か、または等しい(「等しい」)かどうかを確認します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です