我需要将Double转换为String,并限制Swift中的最大位数。我使用以下内容将小数点后的数字限制为2。
numberString = String(format: "%.02f", 0.4394)
如何做类似的事情,但将整数限制为5位数,即9438.45至9438.5
答案 0 :(得分:3)
我建议使用NumberFormatter
并设置其maximumSignificantDigits
属性:
let fmt = NumberFormatter()
fmt.numberStyle = .decimal
//fmt.minimumSignificantDigits = 5 // optional depending on needs
fmt.maximumSignificantDigits = 5
var n = 0.43578912
for _ in 0..<5 {
print(fmt.string(for: n)!)
n *= 10
}
输出:
0.43579
4.3579
43.579
435.79
4,357.9
您可以根据需要指定其他格式设置选项,例如禁用分组分隔符。
如果您希望尾数为零且数字较少的数字,则设置minimumSignificantDigits
将非常有用。
答案 1 :(得分:1)
使用&#34; g&#34;格式说明符:
var n = 0.4354345
for i in 0..<5 {
print(String(format: "%5g", n))
n = n * 10
}
会给你:
0.435435
4.35435
43.5435
435.435
4354.35
您的下一个最佳选择是转换,然后通过截断字符串来修复。