2016-10-27 3 views
1

하나의 값에 숫자가 끝나면 (.)가 포함될 수 있으면 -2 개의 숫자를 사용할 수 있는지 알고 싶습니다.도트가있는 int 값 - Int

var numberOne: String = "21." 
print(Int(numberOne) - 1) 

수 없습니다, 그것은 작동하지 않습니다

나는이 같은 값이 있습니다. 그러면 내가 어떻게 할 수 있니?

+0

'debugPrint ((더블 (NUMBERONE : 대안 (당신이 Int 예에 String 인스턴스를 변환 할 주어진)의 정수를 초기화 (시도) 문자열의 비 소수 부분을 분리하고 그것을 사용하는 것입니다) ?? 0) - 1)'20.0'을 출력합니다. – holex

답변

1

Int(numberOne)으로의 변환이 . 때문에 실패 할 수 없으므로 불가능합니다.

var numberOne: String = "21." 
print(Double(numberOne)! - 1) // 20.0 
print(Float(numberOne)! - 1) // 20.0 
2
var numberOne: String = "21." 
print(Int(Double(numberOne)!) - 1) 

당신은 int로 점으로 문자열을 변환 할 수 없습니다하지만 당신은 플로트로 변환 또는 더블 이들은 int로 변환 할 수 있습니다 :

Double/Float 작동합니다.

+0

이것은 가장 좋은 답변입니다. –

+0

이 답변은 내 대답 @DuncanC와 어떻게 다른가요? –

0

다른 답변은 중간 부동 소수점 변환 사용에 초점을 둡니다.

import Foundation 

var numberOne: String = "21." 

if let numberAsInt = Int(numberOne.components(separatedBy: ".").first ?? "x") { 
    print(numberAsInt - 1) // 20 
}