Swift

Swift:浮動小数点⇄文字列変換

整数への変換は.toInt。浮動小数点は.toFloatがあればと思いました。

  • なるほど、NSStringを使うのですね。

var wChar:String = “3.415”
var wFloart:Floart = (wChar as NSString).floatValue

  • と思っていたら、一通りではないのですね。

var wFloart:Floart = NSString(string:wChar).floatValue

  • そう言えば、以前、浮動小数点を文字列に直すとき、こんな書き方にXcodeが書き直したことを思い出しました。

wValue  += String(stringInterpolationSegment: wItem as! Float)

  • うーむ?サンプルプログラムを作って実行してみました。

1. wChar=3.415を浮動小数点に直すと、(wChar as NSString).floatValue=3.415
2. wChar=3.415を浮動小数点に直すと、NSString(string: wChar).floatValue=3.415
3. wChar=678を浮動小数点に直すと、NSString(string: wChar).floatValue=678.0
4. wChar=123を整数に直すとき、wChar.toInt()!=123
5. wChar.toInt()はwChar=123.45のとき、nilです。
6. 678を整数に直すと、Int(wFloat)=678
7. 123.45をDoubleに直すと、(wChar as NSString).doubleValue=123.45

サンプルプログラム

var wChar:String = “3.415”
var wFloat:Float = (wChar as NSString).floatValue
println(__LINE__,”1. wChar=\(wChar)を浮動小数点に直すと、(wChar as NSString).floatValue=\(wFloat)”)

wFloat = NSString(string: wChar).floatValue
println(__LINE__,”2. wChar=\(wChar)を浮動小数点に直すと、NSString(string: wChar).floatValue=\(wFloat)”)

wChar = “678”
wFloat = NSString(string: wChar).floatValue
println(__LINE__,”3. wChar=\(wChar)を浮動小数点に直すと、NSString(string: wChar).floatValue=\(wFloat)”)

wChar = “123”
var wInt:Int = wChar.toInt()!
println(__LINE__,”4. wChar=\(wChar)を整数に直すとき、wChar.toInt()!=\(wInt) “)

wChar = “123.45”
if wChar.toInt() == nil { //要注意?Floatに変換後、Intに直すべきか。
  println(__LINE__,”5. wChar.toInt()はwChar=\(wChar)のとき、nilです。”)
}

wInt    = Int(wFloat)
println(__LINE__,”6. \(wInt)を整数に直すと、Int(wFloat)=\(wInt)”)

wChar = “123.45”
var wDouble:Double = (wChar as NSString).doubleValue
println(__LINE__,”7. \(wChar)をDoubleに直すと、(wChar as NSString).doubleValue=\(wDouble)”)

参照:

String、Int、Doubleの型変換をそれぞれまとめてみた。
浮動小数点⇔文字列の変換
GitHub

Categories: Swift, 技術