1

出于某种奇怪的原因,我从以下内容收到 NSDecimalNumberOverflowException:

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

这对我来说似乎出乎意料,因为 NSDecimalNumber 的 notANumber 的文档指出任何接收 NaN 作为参数的算术运算都会返回 NaN ...

对于 1+NaN 和 NaN+1,我收到相同的错误...谢天谢地,1+1 仍然给出 2。

关于发生了什么的任何想法?

4

2 回答 2

1

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

于 2011-07-24T07:08:28.487 回答
1

根据海报要求:

是不是它正在创建一个信号NaN 与一个安静的NaN?这些概念存在于 IEEE-754 中,不确定 NSDecimalNumber。如果你[x decimalNumberByAdding: x]在 x 是 NSDecimalNumber 创建的字节 1.0/0 的地方做,会发生什么?

于 2011-07-25T23:39:55.490 回答