我有这样的问题: double calcValue;
NSString *buf = [NSString stringWithFormat:@"%14f", myCalculator.calcValue];
buf =“7.142857”;
而不是
buf =“7.1428571428571423”;
我尝试以这种方式格式化它:@“%f”。 但是当我在逗号显示后尝试了@“%14.9f”9个符号时。
问题是什么?我该如何解决?感谢名单!
答案 0 :(得分:3)
除非我误解,否则正确的格式为@"%.14f
。
你做了什么,@"%14f"
表示你想要在十进制数之前最多14位数,但你没有指定数字。
答案 1 :(得分:1)
我不确定原因,但stringWithFormat:
似乎没有正确地格式化双打。您可以尝试这种方法:
double calcValue=7.1428571428571423;
NSString *buf=[[NSNumber numberWithDouble:calcValue] stringValue];
将buf
设置为@"7.142857142857142"
。
为了更严格地控制数字位数,您可以使用NSNumberFormatter
。