我正在尝试格式化一个从1000到$1000.00或12.99到$12.99或100到$100.00的数字(等等)
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
let formattedNumberTotalCost = numberFormatter.string(from: NSNumber(value:self.itemCost))
//return 1,000
let totalCostStringLeft = String(format: "$%.02f", formattedNumberTotalCost!)
//returns 0.00 SHOULD return $1,000.00
leftui.text = totalCostStringLeft
//shows 0.00
我在这里做错什么了?
最佳答案
只需在这里提供一个完整的答案,NumberFormatter
就可以满足您的所有需求—您只需要告诉它将字符串格式化为货币。
更改:
numberFormatter.numberStyle = .decimal
致:
numberFormatter.numberStyle = .currency
工作完成了。将赋值拖放到
totalCostStringLeft
并赋值leftui.text = formattedNumberTotalCost
你的答案不起作用,因为它试图将两种将数字格式化为字符串的方法结合起来。特定错误是使用了格式化字符串%f,然后在需要浮点值的地方传递字符串。
关于ios - Swift NumberFormat返回0.00,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58229048/