2011-01-05 5 views
4

KeyboardType = UIKeyboardTypeDecimalPad을 사용하고 있으며 일부 전화기에서는 "."대신 왼쪽 하단에 ","가 표시됩니다. 그것은 전화의 언어 설정에 따라 다릅니다! 와 더불어 "." 버전은 모두 [NSNumber numberWithFloat : [textField.text floatValue]]를 사용할 때 잘 작동하지만 ","버전에서는 2.0으로 표시됩니다. 아무도 해결할만한 일을 알고 있습니까?NSString을 로케일 고유의 NSNumber로 변환

답변

6

기본 로캘에 따라 "2.5"및 "2,5"를 올바르게 처리하는 로컬 인식 문자열 변환을 수행해야합니다. 보십시오 : (사용되는 미국에서, 예를 들어)

가 NSDecimalSeparator가 기간이 예를 들어, (또는 쉼표 그대로 사용 여부 :

NSNumber *num=[NSDecimalNumber decimalNumberWithString:textField.text]; 

NSDecimalNumber Class Reference에서 , 프랑스)는 기본 로케일에 에 의존합니다.

+1

조언 해 주셔서 감사합니다. - [NSDecimalNumber decimalNumberWithString : textField.text locale : [NSLocale currentLocale]] 도움이되었습니다 :) –

+0

추가 조언! 나중에 텍스트 필드의 값을 변경하려면 [NSString localizedStringWithFormat : ...]을 사용하여 올바르게 표시해야합니다. –

관련 문제