ユーザーが異なるロケールにいる場合、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 を使用する必要があると確信していますが、これを行う方法がわかりません。ドキュメントには、文字列から double または float を作成する方法のサンプルがありません。次のことを試しましたが、double を作成することも、これらの変数を計算に使用することもできないというエラーが表示されます。
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 を使用してこれらの文字列から実際の Double を作成し、それらを計算で使用する方法がわかりません。
誰かヒントをくれませんか?ありがとう