NSDecimalNumber比较失败

时间:2012-07-31 21:08:13

标签: objective-c ios

为什么result NSOrderedDescending

NSDecimalNumber *decimal = [[NSDecimalNumber alloc] initWithString:@"2.6"];

NSComparisonResult result = [decimal compare:[NSNumber numberWithFloat:2.6]];

1 个答案:

答案 0 :(得分:3)

2.6不能完全表示为浮点数,但NSDecimal可以准确表示此值(这就是我们首先需要NSDecimals的原因)。

根据IEEE 754 Calculator2.6转换为2.5999999046325684,小于2.6,因此比较为NSOrderedDescending