我正在为 iphone 和 ipad 编写应用程序,我的程序需要添加两个 double 值以获得单个 double 值。问题是当其中一个 double 值相当大(例如:2^100)而另一个非常小如 1 或 2 时,将这两个 double 值相加的结果是错误的,或者它甚至不做加法.有谁知道这是为什么以及是否有解决方法。谢谢。
最佳答案
这与obj-c无关。 double是存储浮点值的 64 位数据类型。在十进制中,double 可以容纳大约 15.955 位精度。但是,您的 2^100 数字有大约 30 位小数。因此,如果您尝试向其中添加最多约 1 千万亿的任何值,您会发现添加不起作用,因为它超出了您的数字的精度范围。
为了解决这个问题,您可以使用 NSDecimalNumber ,最多可容纳 38 位小数精度。
关于iphone - 在 objective-c 中添加两个 double 值的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7521616/