Swiftで文字列を数値に変換する方法について記載します。
数値型のイニシャライザを使用する
変換先の各数値型のイニシャライザを使用します。
ただし、数値に変換できない場合は nil を返しますので注意が必要です。
nilを返す可能性があるため、イニシャライザから返される数値はOptional型になります。
書式
Int( 文字列 )
Double( 文字列 )
Float( 文字列 )
Double( 文字列 )
Float( 文字列 )
実行例
Int型に変換
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
// ① 変換後の値はOptional型になる let str1 = "12345" let int1 = Int(str1) print(int1) // Optional(12345) // ② 数値に変換できない場合は、nil を返す let str2 = "aaa" let int2 = Int(str2) print(int2) // nil // ③ アンラップすると安全 let str3 = "12345" if let int3 = Int(str3) { print(int3) // 12345 }else{ print("数値に変換できません") } // ④ 文字列で小数点を扱う場合、Int型に変換すると nil になる let str4 = "123.4" let int4 = Int(str4) print(int4) // nil // ⑤ 文字列型で小数点を扱う場合は、浮動小数点を扱える型に変換する let str5 = "123.4" let double5 = Double(str5) print(double5!) // 123.4 |
Double型に変換
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
let str6 = "12345.6789" let double6 = Double(str6) print(double6) // Optional(12345.6789) // ② 数値に変換できない場合は、nil を返す let str7 = "aaa" let double7 = Double(str7) print(double7) // nil // ③ アンラップすると安全 let str8 = "12345.6789" if let double8 = Double(str8) { print(double8) // 12345.6789 }else{ print("数値に変換できません") } |
Float型に変換
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// ① 変換後の値はOptional型になる let str9 = "12345.6" let float9 = Float(str9) print(float9) // Optional(12345.6) // ② 数値に変換できない場合は、nil を返す let str10 = "aaa" let float10 = Float(str10) print(float10) // nil // ③ アンラップすると安全 let str11 = "12345.6" if let float11 = Float(str11) { print(float11) // 12345.6 }else{ print("数値に変換できません") } |