在Swift浮动的前导零

时间:2015-10-31 02:05:15

标签: swift floating-point

以下是一些浮动值:

5.3
23.67
0.23

我希望他们成为

05.30
23.67
00.23

使用String(format: "%.2f", floatVar)可以在小数点后面加2位,但不能在它之前加零。

我还尝试String(format: "%04.2f", floatVar)作为建议here,但它只显示%.2f

在Swift标准库中是否有一种干净的方法?

2 个答案:

答案 0 :(得分:17)

如果你想要一个快速而肮脏的解决方案:

String(format: "%05.2f", floatChar)

来自this documentation0表示用前导零填充它。 5是最小宽度,包括点字符。

更长的答案是某些语言环境使用逗号作为小数分隔符。如果要匹配用户的区域设置,请使用NumberFormatter

let formatter = NumberFormatter()
formatter.minimumFractionDigits = 2
formatter.maximumFractionDigits = 2
formatter.minimumIntegerDigits = 2

formatter.string(from: NSNumber(value: floatChar))!

答案 1 :(得分:0)

或者我可以尝试更强大的NumberFormatter

api
let numberFormatter = NumberFormatter()
// more settings
numberFormatter.minimumIntegerDigits = 2