如何使用Swift的.formatted()方法去除小数末尾的零?
使用Swift新的
.formatted()去除Double末尾零 你可以通过Swift新的格式化API实现和NumberFormatter完全一致的效果,关键是给fractionLength同时指定最小和最大小数位数,而不是只传单个数值。
之前你用NumberFormatter时设置了minimumFractionDigits = 0和maximumFractionDigits = 2,对应到新API里,只需要用.fractionLength(min: 0, max: 2)即可:
// 测试示例 print(1.0000.formatted(.number.precision(.fractionLength(min: 0, max: 2)))) // 输出 "1" print(1.2345.formatted(.number.precision(.fractionLength(min: 0, max: 2)))) // 输出 "1.23" print(1.2000.formatted(.number.precision(.fractionLength(min: 0, max: 2)))) // 输出 "1.2"
这个写法和你原来的NumberFormatter逻辑完全匹配:当小数部分全是零时,自动省略小数位;有有效小数位时,最多保留两位,同时去掉末尾多余的零。
内容的提问来源于stack exchange,提问作者William T.
相关产品推荐
相关产品推荐

