iphone - 双数据类型+iphone

标签 iphone types double

我有一个应用程序,我知道 double 的范围是**1.7E +/- 308(15位数字)。**但在我的应用程序中我必须划分文本框值为 100.0 我的代码是

double value=[strPrice doubleValue]/100.0;
NSString *stramoount=[@"" stringByAppendingFormat:@"%0.2f",value ];

当我将34901234566781212除以100时,它会给我349012345667812.12,但是当我输入时 349012345667812124 并除以 100 它给我 100 它给我 3490123456678121.00 这是错误的,无论我更改数据类型还是我如何更改我的代码

最佳答案

号码 349012345667812124 有 18 位十进制数字。 double 格式仅提供略小于 16 位十进制数字的精度(实际数字不是整数,因为该格式的二进制数字并不直接对应于十进制数字)。因此,完全可以预料到最后 2 或 3 位数字无法准确表示,并且在任何计算发生之前,当文字“349012345667812124”被解析为 double 格式时,这种情况就已经发生了。

您获得数字 34901234566781212 的预期结果这一事实没有任何意义;它恰好足够接近 double 格式可以表示的最接近的值。

要避免此问题,请使用 NSDecimalNSDecimalNumber 类型。

关于iphone - 双数据类型+iphone,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6424692/

相关文章:

java - 对 double 使用模时性能会下降

ios - swift:当我打开 View Controller 并第一次按下手势识别器时,它说我按下了两次。如何解决这个问题?

iphone - 有没有办法获取应用程序图标角标(Badge)编号?

iPhone 应用程序首选项

mysql、预处理语句和自动类型转换

function - 将不同类型的参数传递给函数

sql - 使用 postgresql 数据库存储 NULL 值需要多少磁盘空间?

c - 整数除法与常规除法

ios - iPhone使用swift 4上传照片

iphone - 在表格 View 中添加按钮