【问题标题】:How display the number of decimal places is uncertain float NSNumber to UILabel as in json?如何在json中显示小数位数不确定的浮动NSNumber到UILabel?
【发布时间】:2019-06-26 07:07:11
【问题描述】:

我有一个来自jsonNSNumber 对象。
我想转换为NSString 进行显示,但结果很奇怪。

    NSNumber *num = @(98.9);
    NSString *numString = [num stringValue];// output 98.90000000000001

我从服务器得到的JSON

{"Price": 98.9}

我需要显示给 UILabel 98.9,但结果是 98.90000000000001
decimal所在的number不确定
也许

{"Price": 98.91}

{"Price": 98.901}

我需要显示和json中的一样

【问题讨论】:

  • 您可能需要NSNumberFormatter 或使用stringWithFormat:,这取决于它是否用于用户体验。
  • 结果并不奇怪。这就是浮动值的工作方式。 98.9 可能是 98.89999 或 98.90001。这种浮动行为就是将这种值命名为“float”。

标签: objective-c json type-conversion nsstring nsnumber


【解决方案1】:

您可以使用stringWithFormat

NSNumber *num = @(98.9);
NSString * numStr = [NSString stringWithFormat:@"%.4lf",[num floatValue]];

【讨论】:

  • 小数位数不定
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-18
  • 1970-01-01
  • 2011-09-03
  • 2021-09-20
  • 2020-06-29
  • 1970-01-01
相关资源
最近更新 更多