문자열의 숫자를 값으로 변환하기
Int
타입의 경우에는 String.toInt()
메소드가 있어서 Int?
타입의 값을 얻을 수 있다. 당연히 toDouble()
메소드가 있을 줄 알았는데, swiftstub.com에서는 이런 멤버가 없다는 에러가 나왔다.
Swift 2.0 부터는 문자열의
toInt()
가 제거되고, Int, Double의 생성자에 문자열을 넣어 옵셔널 타입을 얻을 수 있게 되었다.
let str = "123456"
let strInt = Int(str) // Optional(123456)
let strDouble = Double(str) // Optional(123456)
하지만 아래의 방법 역시 여전히 유효하긴하다.
NSString의-doubleValue
를 이용한다. (2.0에서 제거됨)- NSNumberFormatter를 이용한다.
let str = "123.456"
let dValue = NSNumberFormatter().numberFromString(str)?.doubleValue
// Optional(123456.0)
와 같이 처리하는 것이다. 스탠포드 Swift 강의에서는 아마 1.2 기준이라 그런지 이 방법을 사용하더라.