价格.0处理
在项目中有500.0或者500.00的情况需要处理
实习的同学写了一段这样的代码
public extension String {
var trimZero: String {
replacingOccurrences(of: ".00", with: "").replacingOccurrences(of: ".0", with:"")
}
}
咋一看似乎没啥问题,结果也符合预期
但是上面的case其实没有覆盖全,例如:500.01,那上面的处理方式就有bug了,会被处理成5001
正确的处理方式
public extension String {
var trimZero: String {
guard let value = Double(self) else { return self }
let formatter = NumberFormatter()
formatter.minimumFractionDigits = 0
formatter.maximumFractionDigits = 2
return formatter.string(from: NSNumber(value: value)) ?? self
}
}
测试结果
参考
作者:xiAo_Ju
链接:https://juejin.cn/post/7273684196635525139
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
链接:https://juejin.cn/post/7273684196635525139
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。