如何在iOS中获得高精度的价值

时间:2015-10-26 13:54:35

标签: ios json numbers

服务器向我回复'json对象':

the json:
{ wareAmount:"13.40" } ;

我的iOS代码是获取此json值并按下块:

__weak typeof(self) weakSelf = self ;
[taskAction invoke:(NSDictionary *result){
    weakSelf.wareAmount = [[result objectForKey:@"wareAmount"] doubleValue];
    // the weakSelf.wareAmount's value is 13.399936 ...
}] ;

为什么wareAmount(wareAmount是self的属性对象)的值是13.39,而不是13.40?

1 个答案:

答案 0 :(得分:0)

这是因为计算机存储浮点值的方式。这是一个很大的话题,我建议你多读一些(从here开始)。最重要的是,无法在计算机中精确表示十进制数字。

以某种方式缓解您的问题,我建议将您的号码存储为NSNumber甚至NSDecimalNumber(这甚至建议用于存储代表金额的值)。