Objective-C如何打印浮点数时保留小数点前的0?

13

如何使用NSString类型打印浮点数的前导零?

Input: 3.14
Desired output: 03.1

Using format @"%02.1f"
Output: 3.1
2个回答

38

您需要使用@"04.1f"。其中4是总的宽度。

文档可以看出,格式字符串符合IEEE printf 规范

您指定的格式字符串如下:

0 -- 填充零。
2 -- 整个格式化后的值的最小宽度为2。
.1 -- 小数点后保留1位有效数字。


4
"总宽度" 包括小数点在内,只是这样说。 - Adriano Tornatore

0

由于某些原因,您无法设置浮点数的小数点前宽度(也许这是您应该报告的错误)。这意味着您需要在小数格式处将数字拆分为所需的每个部分,然后将它们合并为一个字符串(@"%i.%i", preDec, postDec)。


这不是一个 bug。无论某人是否想要,这就是格式化字符串定义的工作方式。 - imaginaryboy
似乎仍然很奇怪,因为它在不同类型之间不一致。也许这是一个“功能请求”错误... - user427302
1
它是一致的。对于所有类型来说,他使用的“2”指定了格式化值的最小宽度。 - imaginaryboy
你可以设置它,只是间接地。对于浮点数来说,它是总宽度。只需调整总宽度,使得前导零的数量等于所需的数字即可。 - Peter Mortensen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接