嗨,我从后端API获取字符串类型的价格,我试图在千后放置逗号,在字符串后放置.00
。如果字符串在小数点后有一些值,那么它应该像23,000.55
那样显示该值,否则如果小数点后没有任何值,那么就想像23,000.00
那样显示值。我如何制作这样的格式?我试过NumberFormatter,但当我运行应用程序时,它只在千后显示逗号,但在小数后不显示双零。这是我的代码,
let balanceValue = Double(price ?? "0.0")
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
let formattedNumber = numberFormatter.string(from: NSNumber(value:balanceValue ?? 0.0))
当我打印这个值时,它显示的值是这样的,23,000
。我希望它像这样显示,23,000.00
您可以使用minimumFractionDigits和maximumFractionDigits格式化显示的位数。
顾名思义,它设置了数字的最小和最大数量。在您的情况下,代码为:
let balanceValue = Double(price ?? "0.0")
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
numberFormatter.minimumFractionDigits = 2
numberFormatter.maximumFractionDigits = 2
let formattedNumber = numberFormatter.string(from: NSNumber(value:balanceValue ?? 0.0))
print(formattedNumber)
现在将输出23,000.00
/*此方法用于通过Sepator转换价格*/
class func convertPriceWithSeprator(_ price: Double) -> String{
let numberFormatter = NumberFormatter()
numberFormatter.groupingSeparator = ","
numberFormatter.groupingSize = 3
numberFormatter.usesGroupingSeparator = true
numberFormatter.decimalSeparator = "."
numberFormatter.numberStyle = .decimal
numberFormatter.maximumFractionDigits = 2
return numberFormatter.string(from: price as NSNumber)!
}
只需将numberFormatter.numberStyle
更改为.currency
即可。