我有这段代码可以打印出一笔钱,但有时如果金额是 10 美分的倍数,比如 22.50 美元或 189.20 美元,用户界面会砍掉最后的 0 以显示 22.5 美元或 189.2 美元?
@IBAction func btnCalPress(sender: AnyObject) {
let tipPer = Double(PercentTip.text!)! / 100
let billAmt = Double(BillAmount.text!)
let salesTax = Double(SalesTax.text!)! / 100
let tipAmt = Double(billAmt! * tipPer)
let taxAmt = Double(billAmt! * salesTax)
let totalAmt = tipAmt + taxAmt + billAmt!
let tipAmountFormat = round(tipAmt * 100) / 100
let taxAmountFormat = round(taxAmt * 100) / 100
let totalPayFormat = round(totalAmt * 100) / 100
TipAmount.text = "Tip: $\(tipAmountFormat)"
TaxAmount.text = "Tax: $\(taxAmountFormat)"
TotalAmount.text = "Total: $\(totalPayFormat)"
}
最佳答案
在处理货币时,更容易依赖 NSNumberFormatter
,它恰好也处理一些货币的特殊性。
应用于您的代码将是:
@IBAction func btnCalPress(sender: AnyObject) {
let tipPer = Double(PercentTip.text!)! / 100
let billAmt = Double(BillAmount.text!)!
let salesTax = Double(SalesTax.text!)! / 100
let tipAmt = Double(billAmt * tipPer)
let taxAmt = Double(billAmt * salesTax)
let totalAmt = tipAmt + taxAmt + billAmt
let formatter = NSNumberFormatter()
formatter.numberStyle = .CurrencyStyle
let tipAmount = formatter.stringFromNumber(tipAmt)!
let taxAmount = formatter.stringFromNumber(taxAmt)!
let totalAmount = formatter.stringFromNumber(totalAmt)!
TipAmount.text = "Tip: \(tipAmount)"
TaxAmount.text = "Tax: \(taxAmount)"
TotalAmount.text = "Total: \(totalAmount)"
}
关于swift - Xcode Swift 赚大钱,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37231987/