私はSwift4でコーディングしています。フォーマットされた番号をIntに変換する方法はありますか?計算を行うために、このフォーマットされた数値の値を取得する方法?フォーマット番号の値を取得する方法
let formattedNumber = "12,345,678,910" let newNumber = Int(formattedNumber)*2
私はSwift4でコーディングしています。フォーマットされた番号をIntに変換する方法はありますか?計算を行うために、このフォーマットされた数値の値を取得する方法?フォーマット番号の値を取得する方法
let formattedNumber = "12,345,678,910" let newNumber = Int(formattedNumber)*2
完璧ではありません。
extension String {
var intValue: Int {
let removedCharacter = self.characters.map{String($0)}.filter{Int($0) != nil}.joined()
print(removedCharacter)
if !(removedCharacter.isEmpty) {
return Int(removedCharacter)!
}
return 0
}
func toInt(multiplyBy : Int) -> String {
let formatter = NumberFormatter()
formatter.numberStyle = .decimal
formatter.groupingSeparator = ","
let formattedString = formatter.string(for: intValue * multiplyBy)
return formattedString!
}
}
print("12,345,678,910".toInt(multiplyBy: 2))
>> 24,691,357,820
パースされるすべての文字列が常にカンマを持つことが分かっている場合を除いて、グループ化の区切り文字を '、'にハードコードしないでください。すべて元の書式設定された文字列がどのように生成されているかによって異なります。 – rmaddy
あなたが最初のカンマを削除する必要があります。
let number = formattedNumber.replacingOccurrences(of: ",", with: "")
let newNumber = Int(number)! * 2
'Int(number)'のチェックを追加してみてください。 –
これは、* how * 'formattedNumber'にデータが入力されているかどうかによって異なる場合があります。そのコードを私たちに教えてください。 – dfd
@dfdいいえ、私は質問をより明確にしたかっただけです。私のコードには非常に多くのゴミがあり、これらの情報は十分にはっきりしていると思いました –
適切な解決法は、文字列を数値に変換するために 'NumberFormatter'を使うことです。 – rmaddy