出于某些奇怪的原因,我从以下位置收到 NSDecimalNumberOverflowException:
NSDecimalNumber *a = [NSDecimalNumber notANumber];
NSDecimalNumber *b = [NSDecimalNumber notANumber];
NSLog(@"%@",[a decimalNumberByAdding:b]);
这对我来说似乎出乎意料,因为 NSDecimalNumber 的 notANumber 的文档指出任何接收 NaN 作为参数的算术运算都会返回 NaN...
对于 1+NaN 和 NaN+1,我收到相同的错误...谢天谢地,1+1 仍然给出 2。
对发生的事情有什么想法吗?
最佳答案
根据海报要求:
会不会是它正在创建一个信号 NaN 与一个安静 NaN?这些概念存在于 IEEE-754 中,不确定 NSDecimalNumber。如果你执行 [x decimalNumberByAdding: x]
会发生什么,其中 x 是 NSDecimalNumber 创建的字节 1.0/0?
关于objective-c - NSDecimalNumber:将两个 NaN 相加导致溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6805356/