【问题标题】:Format Specifiers格式说明符
【发布时间】:2013-06-01 14:04:01
【问题描述】:

我想知道我在格式说明符中看到的一些东西。我看到的是这样的:

@"%03.1f", someFloat

我测试了它,它在日志中返回

"1.5"

这叫什么,%f之间有03.1的东西?

【问题讨论】:

标签: ios nsstring format-specifiers


【解决方案1】:

这是一个基本问题。来自C语言。

默认的浮点值可以这样格式化:

%w.pf

这里:

w 代表宽度
p 代表精度

请查看C format specifiers

例子:

使用 %f 打印 3.141592 显示 3.141592 使用 %1.1f 打印 3.141592 显示 3.1 使用 %1.2f 打印 3.141592 显示 3.14 使用 %3.3f 打印 3.141592 显示 3.142 使用 %4.4f 打印 3.141592 显示 3.1416 使用 %4.5f 打印 3.141592 显示 3.14159 使用 %09.3f 打印 3.141592 显示 00003.142 使用 %-09.3f 打印 3.141592 显示 3.142 使用 %9.3f 打印 3.141592 显示 3.142 使用 %-9.3f 打印 3.141592 显示 3.142

【讨论】:

  • 尽管你的例子很完整,但你应该展示一些没有指定宽度和一些没有指定精度的例子。如果值大于宽度,可能会显示宽度被忽略的示例。
【解决方案2】:

%w.pf

在哪里

w -> 总值的最小宽度

p -> 后的精确小数位数。

float f = 2345.34567;
NSLog(@"%2.2f",f);  //Prints:   "2345.35"
NSLog(@"%.4f",f);   //Prints:   "2345.3556"
NSLog(@"%8.2f",f);  //Prints:   " 2345.35"(includes 1 space to make width of f  '8')
NSLog(@"%15.2f",f); //Prints:   "        2345.35"(includes 8 spaces to make width of f '15')

【讨论】:

    【解决方案3】:

    宽度 (%3f) 表示我们希望为输出保留三个数字(位置)。

    %3.1f -> (以浮点形式打印,宽度至少为 3,精度为 1)

    阅读Format Specifiers

    【讨论】:

      猜你喜欢
      • 2016-02-13
      • 2013-08-28
      • 1970-01-01
      • 1970-01-01
      • 2017-11-16
      • 2013-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多