【问题标题】:NSString stringWithFormat problemNSString stringWithFormat 问题
【发布时间】:2010-11-09 02:31:45
【问题描述】:
我有这样一个问题:
双倍计算值;
NSString *buf = [NSString stringWithFormat:@"%14f", myCalculator.calcValue];
buf = "7.142857";
代替
buf = "7.1428571428571423";
我尝试以这样的方式格式化它:@"%f"。
但是当我在逗号显示后尝试@"%14.9f" 9 个符号时。
有什么问题?我该如何解决?谢谢!
【问题讨论】:
标签:
objective-c
nsstring
stringwithformat
【解决方案1】:
除非我有误解,否则正确的格式是@"%.14f。
你做了什么,@"%14f" 说你想要最多 14 位数字,在小数点前,但你没有在后面指定数字。
【解决方案2】:
我不知道为什么,但stringWithFormat: 似乎没有正确格式化双精度数。您可以尝试这种方法:
double calcValue=7.1428571428571423;
NSString *buf=[[NSNumber numberWithDouble:calcValue] stringValue];
这会将buf 设置为@"7.142857142857142"。
为了更严格地控制位数,您可以使用NSNumberFormatter。