我正在使用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。我明白了。我只是回答我自己的问题。
答案 0 :(得分:1)
看来,当你没有给你的格式说明符一个精度(点后的部分)时,它会打印一个默认的数字位数(在我的情况下是6位数)。
我给格式说明符的宽度小于数字表示及其数字(默认精度为6位数),它只是打印了所有数字的数字。如果我使用%10f
,则会使用前置空格打印该数字。