由于某些奇怪的原因,我收到以下NSDecimalNumberOverflowException:
NSDecimalNumber *a = [NSDecimalNumber notANumber];
NSDecimalNumber *b = [NSDecimalNumber notANumber];
NSLog(@"%@",[a decimalNumberByAdding:b]);
由于NSDecimalNumber的notANumber文档声明接收NaN作为参数的任何算术运算都返回NaN ...
我收到1 + NaN和NaN + 1的相同错误...幸运的是1 + 1仍然给出了2.
有关正在发生的事情的任何想法?
答案 0 :(得分:1)
为什么要尝试对NaN值执行算术运算? NaN是一个错误值。
答案 1 :(得分:1)
每张海报请求:
它是否正在创建一个信令 NaN与 quiet NaN?这些概念存在于IEEE-754中,不确定NSDecimalNumber。如果执行[x decimalNumberByAdding: x]
,其中x是NSDecimalNumber创建的字节1.0 / 0,会发生什么?