2010-03-09 3 views
1

서로 다른 :이 코드를 고려 NSNumberFormatter 동작

NSNumberFormatter *nf = [[NSNumberFormatter alloc] init]; 
nf.numberStyle = NSNumberFormatterCurrencyStyle; 

NSLocale *l = [[NSLocale alloc] initWithLocaleIdentifier:@"it_IT"]; 
nf.locale = l; 
[l release]; 
nf.decimalSeparator = @","; 
nf.currencySymbol = @"US$"; 
[nf setLenient:YES]; 
NSString *s = @"US$ 0,05"; 
double d = [[nf numberFromString:s] doubleValue]; 
NSLog(@"%.2f",d);` 

을 나는 이것이 정상적인 코코아 콘솔 기반 응용 프로그램 (10.6 SDK)에서 실행하면, 나는 디버그 콘솔에 출력 "0.05"을 얻는다.

그러나 iPhone 환경 (OS 3.1.3)에서 이것을 실행하면 디버그 콘솔에 "0.00"출력이 표시됩니다. NSNumberFormatter의 사용법에 문제가 있습니까? 아니면 두 플랫폼간에 차이가 있습니까?

+0

어떻게 복제됩니까? 링크 된 질문은 전혀 다른 행동을 설명하지 않습니다. – drewh

+0

일부 부품을 잘못 읽음 – Mark

+0

drewh :'nf'와'numberFromString :'의 결과를 모두 ('% p '를 사용하여) 기록하는 결과를 포함하도록 질문을 편집하십시오. 'nf'가'nil'인지는 의심 스럽지만'numberFromString :'이'nil'을 반환하는지 NSNumber를 나타내는 지 알 수 있습니다. –

답변

0
NSString *s = @"US$ 0,05"; 

당신이 공간을 제거하면?

관련 문제