仅在必要时删除双尾的尾随零

时间:2014-01-13 17:15:49

标签: ios iphone objective-c

我正在制作一个计算器应用程序,我正在使用双精度。我不希望显示额外的零和小数,因此我将占位符标记更改为“%.f”。因为如果我在涉及小数的计算器上遇到问题就这样做了,他们就不会出现。

我的问题基本上是否有任何方法让%.f仅在必要时使用。如果没有办法,你建议做什么,所以我只需要实际需要的小数。谢谢。

2 个答案:

答案 0 :(得分:3)

您可能希望使用NSDecimarlNumber,但要回答您的问题,您可以使用NSNumberFormatter格式化双输出。

double someNumber = 1.9;
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSLog(@"%@",[formatter stringFromNumber:[NSNumber numberWithDouble:someNumber]]);

我的输出

  

2014-01-13 11:30:41.429 DTMTestApp [23933:907] 1.9

答案 1 :(得分:2)

对于计算器,请考虑使用NSDecimalNumberNSNumberFormatter结合使用。使用浮点会有很多问题。考虑:(2 / 3.000000001)* 3.000000001,结果不一定正好是2。