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