2

我有这样一个问题:double calcValue;

NSString *buf = [NSString stringWithFormat:@"%14f", myCalculator.calcValue];

buf = "7.142857";

而不是

buf = "7.1428571428571423";

我尝试以这种方式对其进行格式化:@“%f”。但是当我在逗号显示后尝试 @"%14.9f" 9 个符号时。

有什么问题?我该如何解决?谢谢!

4

2 回答 2

3

除非我有误解,否则正确的格式是@"%.14f.

你所做的,@"%14f"说你想要最多 14 位数字,在小数点前,但你没有在后面指定数字。

于 2010-11-08T18:31:45.933 回答
1

我不知道为什么,但stringWithFormat:似乎没有正确格式化双打。您可以尝试这种方法:

double calcValue=7.1428571428571423;
NSString *buf=[[NSNumber numberWithDouble:calcValue] stringValue];

这将设置buf@"7.142857142857142".

为了更严格地控​​制位数,您可以使用NSNumberFormatter.

于 2010-11-08T10:47:40.560 回答