从String中删除尾随数字

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从String中删除尾随数字相关的知识,希望对你有一定的参考价值。

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

1.120.00007067999999

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

我试过Swift - Remove Trailing Zeros From Double,但%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"

以上是关于从String中删除尾随数字的主要内容,如果未能解决你的问题,请参考以下文章

如何从sqlplus中的数字列中删除小数点后的尾随零?

我如何确保十进制中有一定数量的数字(尾随零)

如何从双精度中删除尾随零 [重复]

Python在输入一串数字时删除尾随空格

从Excel中删除尾随零并将小数点添加到字符串

使用 owa_pattern 删除数字和特殊字符