私ができる小数点に変換しようとしている文字列があります。文字列に変換前の通貨記号があるかどうか確認してください
ここでは1.50を変換する文字列がありますが、私はそれを以下の関数で実行して正しい10進数を返します。しかし、その文字列が$ 1.50のように見えることもあります。その場合、最初の関数に渡すと失敗します。動作する2番目の関数に渡しても、文字列に通貨記号があるかどうかを判断する方法を理解できる必要があります。私は思ったようにそれを組み合わせたり、両方の機能を1つに組み合わせたりすることを提案しました。
func decimalFormat(stringNumber:String) -> Decimal{
print("\(stringNumber) is the number being passed")
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .decimal
let number = numberFormatter.number(from: stringNumber)
print("\(number!) is the number")
let amount = number?.decimalValue
return amount!
}
問題は時々、文字列が通貨記号を持っていると私は地元のシンボルが何であれをチェックし、それが
func curencyToDecimal(stringNumber:String) -> Decimal{
print("\(stringNumber) is the number being passed")
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .currency
let number = numberFormatter.number(from: stringNumber)
print("\(number!) is the number")
let amount = number?.decimalValue
return amount!
}
私はちょうどよ変換するために、このようなものを使用したいということです私が試して変換する前にシンボルをチェックする方法がわからない。
おそらく正規表現を使用できますか? –
両方を試すのはどうですか? '.decimal'での変換が失敗した場合(nilを返した場合)、' .currency'で変換を試みてください。 –
関連のないタグは追加しないでください。 [curry-currency-converter]は、いくつかのjQueryプラグインです。 –