![]() |
1
18
几年后:
|
![]() |
2
13
根据Boaz Stuler的回答,我为这个问题向苹果公司记录了一个bug。在这个问题解决之前,以下是我认为最好的解决办法。这些解决方法仅仅依赖于将十进制数四舍五入到适当的精度,这是一种可以补充现有代码的简单方法(而不是从格式化程序切换到扫描程序)。 一般数字 基本上,我只是根据对我的情况有意义的规则对数字进行四舍五入。因此,YMMV取决于您支持的精度。
|
![]() |
3
4
这似乎有效:
编辑:在苹果解决这个问题之前(然后每个潜在用户都会更新到固定的OSX版本),您可能需要使用NSScanner滚动您自己的解析器,或者对输入的数字接受“仅”双精度。除非你计划在这个应用程序中加入五角大楼的预算,否则我建议你使用后者。事实上,双倍数字精确到小数点后14位,因此,如果少于一万亿美元,它们就会少掉一分钱。我不得不为一个项目编写自己的基于NSDateFormatter的日期解析例程,我花了一个月的时间处理所有有趣的edge案例(比如只有瑞典的长日期中包含了星期几)。 |
![]() |
4
0
另见 Best way to store currency values in C++ 处理货币的最佳方法是对货币的最小单位使用整数值,即美元/欧元等于美分等。这样可以避免代码中与浮点相关的精度错误。
|
![]() |
Martin sku · 在目标C中打印时间 2 年前 |
![]() |
Vinod prajapat · 如何更新数组的最后一个元素? 2 年前 |
![]() |
subin272 · 修复iOS中的多个按钮单击事件? 6 年前 |
![]() |
James Chan · 如何使用锁定/解锁? 6 年前 |
![]() |
Josh F. · NSBundle mainBundle返回零 6 年前 |