iphone - 在 objective-c 中添加两个 double 值的问题

标签 iphone c ipad double

我正在为 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/

相关文章:

iphone - 出现错误 : directory not found for option

c - 在不提供变量名的情况下打印 %d 时 printf 的行为

c - WEXITSTATUS 在成功案例中返回 popen() 的无效退出状态

javascript - 检测 iPad 方向变化

iphone - 检查 CoreData 属性是否为空

iphone - 检查 NSNumber 是否有尾随 .00 数字

iphone - iPhone 和 iPad 的 Assets 命名

c - OpenSSL GOST 参数集

ios - 当我单击后退按钮时,我的 View 从横向变为纵向

c# - iPad View 不旋转