我将文本字段字符串转换为 double 型以进行计算,然后返回字符串以将其输出在标签上。我现在正在处理货币输入,因此我需要将其转换为小数而不是 double 。有人可以帮忙吗?
func calcTotal() {
let totalConv: Double? = Double(totalTextField.text!)
let tipConv: Double? = Double(tipTextField.text!)
guard totalConv != nil && tipConv != nil else {
return
}
let result = totalConv! * ((tipConv! / 100) + 1)
let output = String(format: "$ %.2f", result)
totalAmount.text = String(output)
}
最佳答案
您只需要使用 Decimal(string:)
初始值设定项和 NumberFormatter
(货币样式)来格式化您的十进制值。
func calcTotal() {
guard
let totalConv = Decimal(string: totalTextField.text!),
let tipConv = Decimal(string: tipTextField.text!)
else { return }
let result = totalConv * ((tipConv / 100) + 1)
totalAmount.text = Formatter.currency.string(for: result)
}
<小时/>
extension Formatter {
static let currency: NumberFormatter = {
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .currency
return numberFormatter
}()
}
关于swift - 将文本字段数据转换为十进制值并返回字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56942897/