ユーザーが異なるロケールにいる場合、iOS計算に次の問題があります。ヨーロッパでは、小数点区切り記号は "、"で、他のロケールでは "。"である可能性があります。ユーザーがロケールに「。」が付いている限り、すべての計算は正常に動作しますが、代わりにコンマを使用するとエラーが発生します。ここでは簡単なコードは、これまでのところです:計算でロケールの小数点/カンマでiOSエラーを解決するにはどうすればよいですか? (NumberFormatterを使用)
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を作成する方法のサンプルを提供します。私は、次のことを試してみましたが、私はダブルスを作成することも、計算にこれらの変数を使用しないこともできないというエラーが出ます:
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はとそれらの文字列から実際のダブルスを作成し、計算にそれらを使用する方法がわかりません。
誰かに私にヒントを教えてもらえますか?あなたが必要とする おかげ
ユーザに数字を提示するには、 'NSNumberFormatter'を使用する必要があります。解析時には、通常、 '、'を '.'で置き換えるだけで十分です。 – Sulthan
それはうまくいきましたが、それは私にとって最もエレガントなものではないので、私はその解決策を考えなかったことを認めなければなりません。 – RjC
(currencyFormatter = NumberFormatterは() currencyFormatter.usesGroupingSeparator =真 currencyFormatter.numberStyle = NumberFormatter.Style.currency currencyFormatter.locale = NSLocale.current せPRICESTRING = currencyFormatter.stringを聞かせて:私は、文字列をお返しするために、以下の使用しましたfor:result) print(priceString ?? 0) – RjC