从字符串中删除尾随数字
Remove trailing numbers from String
我收到了来自JSON的两个双打孩子:
1.12
和 0.00007067999999
第二个数字自动切换为科学计数法(
7.067e-05),所以我使用函数 String(format:"%.8f", NUMBER)
使其成为 0.00007067
,是的,它有效,但现在我的第一个数字变成了 1.12000000
。
如何清除尾随数字?
我试过 ,但是 %g
格式再次将第二个数字更改为科学记数法,因此 %g
不是一个选项。有什么建议吗?
您可以使用 NumberFormater
并设置最小和最大小数位数:
let double1 = 1.12
let double2 = 0.00007067999999
let numberFormatter = NumberFormatter()
numberFormatter.minimumFractionDigits = 2
numberFormatter.maximumFractionDigits = 8
numberFormatter.minimumIntegerDigits = 1
numberFormatter.string(for: double1) ?? "" // "1.12"
numberFormatter.string(for: double2) ?? "" // "0.00007068"
如果您想将小数位数向下舍入,您可以将格式化程序舍入模式选项设置为 .down
:
numberFormatter.roundingMode = .down
numberFormatter.string(for: double2) ?? "" // "0.00007067"
我收到了来自JSON的两个双打孩子:
1.12
和 0.00007067999999
第二个数字自动切换为科学计数法(
7.067e-05),所以我使用函数 String(format:"%.8f", NUMBER)
使其成为 0.00007067
,是的,它有效,但现在我的第一个数字变成了 1.12000000
。
如何清除尾随数字?
我试过 %g
格式再次将第二个数字更改为科学记数法,因此 %g
不是一个选项。有什么建议吗?
您可以使用 NumberFormater
并设置最小和最大小数位数:
let double1 = 1.12
let double2 = 0.00007067999999
let numberFormatter = NumberFormatter()
numberFormatter.minimumFractionDigits = 2
numberFormatter.maximumFractionDigits = 8
numberFormatter.minimumIntegerDigits = 1
numberFormatter.string(for: double1) ?? "" // "1.12"
numberFormatter.string(for: double2) ?? "" // "0.00007068"
如果您想将小数位数向下舍入,您可以将格式化程序舍入模式选项设置为 .down
:
numberFormatter.roundingMode = .down
numberFormatter.string(for: double2) ?? "" // "0.00007067"