NSNumber
aが分数かどうかを確認する最良の方法は何ですか?
NumberIsFraction(@(0)); // NO;
NumberIsFraction(@(0.5)); // YES;
NumberIsFraction(@(1.0)); // NO;
ボーダーケースの処理とパフォーマンスの点で「最高」。
NSNumber
aが分数かどうかを確認する最良の方法は何ですか?
NumberIsFraction(@(0)); // NO;
NumberIsFraction(@(0.5)); // YES;
NumberIsFraction(@(1.0)); // NO;
ボーダーケースの処理とパフォーマンスの点で「最高」。
ドメインが小さい型への変換を回避する:
BOOL NumberIsFraction(NSNumber *number) {
double dValue = [number doubleValue];
if (dValue < 0.0)
return (dValue != ceil(dValue));
else
return (dValue != floor(dValue));
}
私は現在使用しています:
BOOL NumberIsFraction(NSNumber* number) {
return ![number isEqualToNumber:@(number.longLongValue)];
}
-(BOOL) NumberIsFraction: (NSNumber*)number
{
NSLog(@"%0.16g",number.doubleValue);
NSLog(@"%d", number.intValue);
double diff = number.doubleValue - number.intValue;
if (diff>0)
return YES;
else return NO;
}