2011-03-22 13 views
6

나는 기기에서 설정 한 소수점 기호를 가져오고 싶습니다. null 반환 -소수점 기호를 가져 오는 방법은 무엇입니까?

내가 다른 장치 (4.3)에 테스트입니다 때 지금까지 잘 작동했다
NSString *decimalSymbol;  
NSNumberFormatter *f = [[NSNumberFormatter alloc] init];  
[f setNumberStyle:NSNumberFormatterDecimalStyle]; 
[f setMinimumFractionDigits:2];  
[f setMaximumFractionDigits:2];  
[f setGroupingSeparator:@" "];  

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];  
[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; 
[formatter setMinimumFractionDigits:2];  
[formatter setMaximumFractionDigits:2];  
[formatter setGroupingSeparator:@" "];  

NSRange range = {1,1}; 

decimalSymbol = [[formatter stringFromNumber:[f numberFromString:[@"" stringByAppendingFormat:@"%.02f", 1.0f]]] substringWithRange:range]; 

[formatter release];  
[f release]; 

이 : 지금까지 나는이 방법을 사용했다. 무엇이 문제 일 수 있습니까?

십진 기호를 다시 검색하는 다른 방법이 있습니까?

LATER 편집 :

decimalSymbol = [[@"" stringByAppendingFormat:@"%.02f", 1.0f] substringWithRange:range]; 

을하지만 왜 다른 방법이이 특정 장치에서 작동하지 미상 :
내가 사용할 수 있습니까?

답변

24
NSNumberFormatter *formatter = [[[NSNumberFormatter alloc] init] autorelease]; 
NSString *decimalSymbol = [formatter decimalSeparator]; 
2

decimalSeparator와

수신기 소수점 구분 기호를 표현하는 데 사용하는 문자를 포함하는 문자열을 반환합니다.

- (NSString *)decimalSeparator

예 :

decimalSymbol = decimalSeparator와 F]

20

가장 좋은 방법은 NSNumberFormatter 개체를 초기화하지 않고 현재 로캘의 소수점 구분 기호를 얻는 것입니다. 이와 같이 :

버전
[[NSLocale currentLocale] objectForKey:NSLocaleDecimalSeparator] 
+2

또는 iOS 10+'[NSLocale currentLocale] .decimalSeparator 행; ' – CyberMew

1

스위프트 3

NSLocale.current.decimalSeparator

관련 문제