NSDecimalNumber:求和两个NaN导致溢出?

时间:2011-07-24 06:45:50

标签: objective-c ios nsdecimalnumber

由于某些奇怪的原因,我收到以下NSDecimalNumberOverflowException:

NSDecimalNumber *a = [NSDecimalNumber notANumber];
NSDecimalNumber *b = [NSDecimalNumber notANumber];
NSLog(@"%@",[a decimalNumberByAdding:b]);

由于NSDecimalNumber的notANumber文档声明接收NaN作为参数的任何算术运算都返回NaN ...

我收到1 + NaN和NaN + 1的相同错误...幸运的是1 + 1仍然给出了2.

有关正在发生的事情的任何想法?

2 个答案:

答案 0 :(得分:1)

为什么要尝试对NaN值执行算术运算? NaN是一个错误值。

答案 1 :(得分:1)

每张海报请求:

它是否正在创建一个信令 NaN与 quiet NaN?这些概念存在于IEEE-754中,不确定NSDecimalNumber。如果执行[x decimalNumberByAdding: x],其中x是NSDecimalNumber创建的字节1.0 / 0,会发生什么?