2017-12-05 6 views
-3

문자열에서 정수로 가져오고 싶습니다. 내 문제는 지금 int 값을 얻을 것이다 있지만 쉼표 뒤에 번호를 표시 못해. 문자열이 -0,23 인 경우 int보다 0이 인쇄됩니다.이 문제를 해결할 수 있습니까? 도와주세요.Int는 쉼표 뒤에 숫자를 표시하지 않습니다.

let int = (percent_change_24hArray[indexPath.row] as NSString).integerValue 
+2

문자열이'-0,23 '이면 어떤 정수 결과를 기대합니까? –

+2

-> Swift에서 NSString을 사용하지 마십시오. – Alexander

답변

2

후 번호를하지 않습니다. 미국에서 소수 구분 기호는 마침표입니다. (".") 쉼표는 구분 기호로 간주됩니다.

또한 소수 구분 기호가 쉼표 인 로캘에 있다고 가정하면 정수로 변환하면 소수 구분 기호 뒤에 부분이 자릅니다.

코드 아래 코드는 작동합니다 같은 :

var str = "-0,23" 

let formatter = NumberFormatter() 
formatter.numberStyle = .decimal 
formatter.locale = Locale(identifier: "fr_FR") 


let aVal = formatter.number(from: str)?.doubleValue 

(프랑스 소수 구분 기호로 쉼표를 사용하기 때문에 내가 로케일로 프랑스의 프랑스어를 사용하고 있습니다.) 당신이 생각해야

주 로켈을 처리하는 방법을 결정하기 위해 숫자 문자열의 출처에 대해주의 깊게 살펴보십시오. 이것이 사용자가 입력 한 문자열이라면 장치의 기본 로케일로 숫자 포맷터를 사용해야합니다. 그렇게하면 유럽 사용자는 쉼표를 소수 구분 기호로 사용할 수 있고 미국 사용자는 마침표를 소수 구분 기호로 사용할 수 있으며 둘 다 사용할 수 있습니다.