NumberFormatter 意外舍入
NumberFormatter rounding unexpectedly
这是我用来添加逗号的代码:
extension String
{
func addCommas() -> String
{
var result = String(self)
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
let number = NSNumber(value:Float64(result)!)
result = numberFormatter.string(from: number)
return result!
}
}
然后我设置例如"1000".addCommas() 然后它 returns 很好 "1,000" 但是当我设置数字 "1.1234".addCommas() 然后它 returns "1.123" 似乎它四舍五入这个数字。如何解决上述问题?
您可以通过使用 NumberFormater 来实现,类似这样。
let value = 1000
let formater = NumberFormatter()
formater.numberStyle = .decimal
formater.groupingSeparator = ","
print(formater.string(from: NSNumber(integerLiteral: value)) ?? "Return nil value")
Apple 文档可用here
这是我用来添加逗号的代码:
extension String
{
func addCommas() -> String
{
var result = String(self)
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = NumberFormatter.Style.decimal
let number = NSNumber(value:Float64(result)!)
result = numberFormatter.string(from: number)
return result!
}
}
然后我设置例如"1000".addCommas() 然后它 returns 很好 "1,000" 但是当我设置数字 "1.1234".addCommas() 然后它 returns "1.123" 似乎它四舍五入这个数字。如何解决上述问题?
您可以通过使用 NumberFormater 来实现,类似这样。
let value = 1000
let formater = NumberFormatter()
formater.numberStyle = .decimal
formater.groupingSeparator = ","
print(formater.string(from: NSNumber(integerLiteral: value)) ?? "Return nil value")
Apple 文档可用here