ベストアンサー
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より大きい(「等しくない」)か、または等しい(「等しい」)かどうかを確認します。