当用户处于不同的语言环境时,iOS 计算存在以下问题。在欧洲,小数点分隔符是“,”,而在其他语言环境中,它可能是“.”。只要用户在带有“.”的语言环境中。所有计算都可以正常工作,但是当使用逗号代替时,我会收到错误消息。到目前为止,这是简单的代码:
if let expense = expenseTextField.text
let expenseValue = Double(expense)
let guests = guestTextField.text
let guestValue = Double(guests) {
let result = round((expenseValue / guestValue) * 100) / 100
resultLabel.text = priceString
//resultLabel.text = String(result)
} else {
resultLabel.text = "No values!"
}
据我了解这里的其他问题,我很确定我必须使用 numberFormatter ,但我不知道如何做到这一点,并且文档没有提供如何从字符串创建双精度或浮点数的示例。我尝试了以下方法,但收到一条错误消息,指出我既不能创建双打也不能使用这些变量进行计算:
if let expense = expenseTextField.text
let expenseValue = String(expense),
let guests = guestTextField.text
let guestValue = String(guests) {
let expenseFormatter = NumberFormatter()
expenseFormatter.number(from: expenseValue)
let guestFormatter = NumberFormatter()
guestFormatter.number(from: guestValue)
let expenseDouble = Double(expenseFormatter)
let guestDouble = Double(guestFormatter)
let result = round((expenseDouble / guestDouble) * 100) / 100
resultLabel.text = priceString
} else {
resultLabel.text = "No values!"
}
我不确定如何使用 numberFormatter 从这些字符串创建真正的 Doubles,然后在计算中使用它们。
有人可以给我小费吗?谢谢