在Objective C中,我如何检查值是否为整数,如2.000,3.000,8000存储为浮点数,而不是像2.456,3.578那样的分数
答案 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) {
}
}