swift - 将文本字段数据转换为十进制值并返回字符串

标签 swift

我将文本字段字符串转换为 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/

相关文章:

Swift 如何从条件绑定(bind)必须具有可选类型的 do catch 返回元组?

ios - UITableViewCell XCTest 中的测试单元格

xcode - 如何更改选项卡栏项目的默认灰色?

Swift EXC_BAD_ACCESS 具有在协议(protocol)扩展中定义的默认实现

swift - 在 OSX 上快速处理同步

ios - Firebase 实时数据库不保存注册页面的数据

ios - 当 NSNotificationCenter 是两个 View Controller 时,在 applicationDidEnterBackground 中调用了两次?

ios - 向 UITableViewCell 添加了自动布局,但我看到了未知现象

uitableview - swift 中带键的数组

ios - 如何限制iOS按钮标题背景区域为0行?