【问题标题】: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。

      【讨论】:

      • 答案是使用“%g”。它可以一起做所有事情!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多