Double

时间:2015-08-06 16:19:21

标签: swift format-specifiers

我正在使用String init(format: String, _ arguments: CVarArgType…)进行一些实验,一切都按预期工作,直到我尝试这样做:

String(format:"%3f", 32.6)

返回了:

  

32.600000

我不明白为什么它不符合我想要的宽度。

根据我对格式说明符的了解(我不太了解它们),您可以指定为:

%x.y

其中x是返回数字的宽度(没有最终点),y是精度(点后面的位数)。

例如:

String(format: "%3.2", 2.1)

应该返回:

  

2.10

如果x大于所有数字,则它会在字符串前面添加空格。

OH。我明白了。我只是回答我自己的问题。

1 个答案:

答案 0 :(得分:1)

看来,当你没有给你的格式说明符一个精度(点后的部分)时,它会打印一个默认的数字位数(在我的情况下是6位数)。

我给格式说明符的宽度小于数字表示及其数字(默认精度为6位数),它只是打印了所有数字的数字。如果我使用%10f,则会使用前置空格打印该数字。