Swift中浮点的前导零

Swift中浮点的前导零,swift,floating-point,Swift,Floating Point,以下是一些浮点值: 5.3 23.67 0.23 我希望他们是 05.30 23.67 00.23 使用字符串(格式:“%.2f”,floatVar)可以在小数点后加2位,但不能在小数点前加零 我还尝试了字符串(格式:“%04.2f”,floatVar),但它的显示方式与%.2f 在Swift标准库中是否有一种干净的方法可以做到这一点?如果您想要一个快速而肮脏的解决方案: String(format: "%05.2f", floatChar) From:0表示用前导零填充5是最小宽度,包括

以下是一些浮点值:

5.3
23.67
0.23
我希望他们是

05.30
23.67
00.23
使用
字符串(格式:“%.2f”,floatVar)
可以在小数点后加2位,但不能在小数点前加零

我还尝试了
字符串(格式:“%04.2f”,floatVar)
,但它的显示方式与
%.2f


在Swift标准库中是否有一种干净的方法可以做到这一点?

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

String(format: "%05.2f", floatChar)
From:
0
表示用前导零填充
5
是最小宽度,包括点字符


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

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

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

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


请尝试
“%*.2f”
。我记得这是在C@Arc676中工作的,它没有返回任何东西:(
*
意味着用另一个参数作为整数来代替
*
。它的效果既不比
%5.2f
好,也不比
%5.2f
差,而且如果不解释它的作用,这是一种无用的建议。澄清一下:5是表示原始数字的完整格式化字符串的最小宽度,包括di在小数点分隔符之前、小数点分隔符之前和小数点分隔符之后。如果floatValue为3.14159265,并且字符串是这样创建的:String(格式:“%06.2f”,floatSample),则生成的字符串是“003.14”。
let numberFormatter = NumberFormatter()
// more settings
numberFormatter.minimumIntegerDigits = 2