Search code examples
iphoneobjective-ciosnsdecimalnumber

Check if NSDecimalNumber is whole number


What's the easiest way to check if an instance of NSDecimalNumber is a whole number?

Thanks!


Solution

  • @interface NSDecimalNumber (IsIntegerNumber)
    @property (readonly) BOOL isIntegerNumber;
    @end
    
    @implementation NSDecimalNumber (IsIntegerNumber)
    -(BOOL)isIntegerNumber {
        NSDecimalValue value = [self decimalValue];
        if (NSDecimalIsNotANumber(&value)) return NO;
        NSDecimal rounded;
        NSDecimalRound(&rounded, &value, 0, NSRoundPlain);
        return NSDecimalCompare(&rounded, &value) == NSOrderedSame;
    }
    @end