objective c - script - Compruebe si el valor flotante es entero
como saber si un numero es entero o decimal en c (5)
En Objective C, ¿cómo puedo verificar si el valor es un número entero como 2.000, 3.000, 8.000 almacenado como un flotante, y no una fracción como 2.456, 3.578
Personalmente me gusta
#define F_ISWHOLENUM(_float) (!fmod(_float, 1.0f))
Use la función de resto del punto flotante:
if (fmod(fVal, 1.0) == 0.0)
// is integer
o
BOOL isInteger = !fmod(fVal, 1.0);
Creo que estás preguntando cómo saber si un número almacenado como un float
es un número entero. Hay una serie de técnicas. Aquí hay uno:
if(fVal == floorf(fVal))
... // do something
Creo que esta es la forma más sencilla de comprobar que:
if( fnum == (int)fnum )
//fnum has integer value without decimals
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) {
}
}