检查浮点值是否为整数

时间:2013-11-16 13:06:04

标签: objective-c floating-point numbers

在Objective C中,我如何检查值是否为整数,如2.000,3.000,8000存储为浮点数,而不是像2.456,3.578那样的分数

5 个答案:

答案 0 :(得分:20)

我想你在问如何找出存储为float的数字是否为整数。有许多技术。这是一个:

if(fVal == floorf(fVal))
    ... // do something

答案 1 :(得分:13)

使用浮点余数函数:

if (fmod(fVal, 1.0) == 0.0)
   // is integer

BOOL isInteger = !fmod(fVal, 1.0);

答案 2 :(得分:3)

我认为这是检查它的最简单方法:

if( fnum == (int)fnum )
//fnum has integer value without decimals

答案 3 :(得分:1)

我个人喜欢

 #define F_ISWHOLENUM(_float) (!fmod(_float, 1.0f))

答案 4 :(得分:0)

float number = myNum.floatValue;
 CFNumberType numberType = CFNumberGetType((CFNumberRef)myNum);
if(number == floorf(number) && (number == 1 || number == 0))
{
    // It is a bool (Exceptions 1.000, 0.00000)
}
else
{
    // It is some other number use numberTyoe here except kCFNumberCharType
    if (numberType == kCFNumberSInt32Type) {

    }
}