Double 上的格式说明符
Format specifier on Double
我在 String
的 init(format: String, _ arguments: CVarArgType…)
上做了一些试验,一切都按预期进行,直到我尝试这样做:
String(format:"%3f", 32.6)
哪个 returned :
32.600000
我不明白为什么它不符合我想要的宽度。
根据我对格式说明符的了解(我不太了解它们)你可以这样指定:
%x.y
其中 x
是 returned 数字的宽度(没有最终的点),y
是精度(点后的位数)。
例如:
String(format: "%3.2", 2.1)
应该return:
2.10
如果 x
大于所有数字,它会在字符串前加上空格。
哦。好的,我刚刚明白了。我只回答我自己的问题。
似乎当你没有给你的格式说明符一个精度(点后面的部分)时,它会打印一个默认的位数(在我的例子中是 6 位数)。
我为格式说明符提供的宽度小于数字表示形式及其数字(默认精度为 6 位数字),它只是打印了所有数字的数字。如果我使用 %10f
它会打印带有前缀空格的数字。
我在 String
的 init(format: String, _ arguments: CVarArgType…)
上做了一些试验,一切都按预期进行,直到我尝试这样做:
String(format:"%3f", 32.6)
哪个 returned :
32.600000
我不明白为什么它不符合我想要的宽度。
根据我对格式说明符的了解(我不太了解它们)你可以这样指定:
%x.y
其中 x
是 returned 数字的宽度(没有最终的点),y
是精度(点后的位数)。
例如:
String(format: "%3.2", 2.1)
应该return:
2.10
如果 x
大于所有数字,它会在字符串前加上空格。
哦。好的,我刚刚明白了。我只回答我自己的问题。
似乎当你没有给你的格式说明符一个精度(点后面的部分)时,它会打印一个默认的位数(在我的例子中是 6 位数)。
我为格式说明符提供的宽度小于数字表示形式及其数字(默认精度为 6 位数字),它只是打印了所有数字的数字。如果我使用 %10f
它会打印带有前缀空格的数字。