objective-c - NSDecimalNumber:将两个 NaN 相加导致溢出?

标签 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。

对发生的事情有什么想法吗?

最佳答案

根据海报要求:

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

关于objective-c - NSDecimalNumber:将两个 NaN 相加导致溢出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6805356/

相关文章:

objective-c - 为什么带有属性的 createDirectory AtPath 不起作用

Objective-C:在 SpriteKit 中向计时器添加 10 秒

objective-c - 为什么这个屏幕尺寸范围是错误的?

ios - 突然出现许多 Fabric Out of Memory session : Can Fabric OOM Reports ever be false alarms?

ios - NSDecimalNumber 值的小数位数和精度

ios - iOS 中 NSDecimalNumber 的小数点分隔符错误

ios - 根据 Objective-C 中的评论数量对核心数据中的 FetchedObjects 数组进行排序

iphone - UISegmentedControl 抛出异常

ios - 使用AVCaptureSession录制视频不会保存任何视频

json - AlamoFire responseJSON 十进制精度