首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么NSString的doubleValue与原始字符串不同?

为什么NSString的doubleValue与原始字符串不同?
EN

Stack Overflow用户
提问于 2016-07-19 17:07:37
回答 2查看 122关注 0票数 0

NSString is @"16.240" it's doubleValue is 16.239999999999998

幕后发生了什么?

EN

回答 2

Stack Overflow用户

发布于 2016-07-19 17:20:57

因为浮点舍入误差。

长话短说;并不是每个数字都可以用浮点类型来表示。

参考文献:#1#2#3

票数 0
EN

Stack Overflow用户

发布于 2016-07-19 17:46:18

如果它是物有所值(或一般的金钱),最好使用NSDecimalNumber,因为它是按原样保存浮点值的每个部分。

代码语言:javascript
运行
复制
NSDecimalNumber *price = [NSDecimalNumber decimalNumberWithString:@"16.240"];
NSLog(price); //16.24

http://rypress.com/tutorials/objective-c/data-types/nsdecimalnumber

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38454070

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档