从String中删除尾随数字

时间:2017-12-23 19:34:23

标签: swift string numbers trailing

我从JSON收到两个双打小孩:

1.120.00007067999999

第二个数字自动切换为科学记数法( 7.067e-05),所以我使用函数String(format:"%.8f", NUMBER)来使它成为0.00007067,是的它可行,但现在我的第一个数字变为1.12000000。 如何清理尾随数字?

我已尝试使用Swift - Remove Trailing Zeros From Double,但%g格式再次将第二个数字更改为科学记数法,因此%g不是一个选项。有什么建议吗?

1 个答案:

答案 0 :(得分:2)

您可以使用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"