2012-02-13 3 views
2

NSNumberFormatter을 사용하려고하는데 형식을 사용자 정의하려면 -setPositiveFormat을 사용하고 싶습니다.NSNumberFormatter setPositiveFormat

는 내가 9 자리와 2 개 소수

나는 내 목표를 폐쇄하고있어 사용할 필요가 121212.12

12.12E+04에 변환 할 :

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setFormatterBehavior:NSFoundationVersionNumber10_4]; // iOS supports only the modern 10.4+ behavior 
[formatter setNumberStyle:NSNumberFormatterScientificStyle]; 
[formatter setMinimumFractionDigits:numberOfDecimalDigits]; 
[formatter setPositiveFormat:@"#.#E+00"]; 
[formatter setFormatWidth:9]; // set width 
[formatter setPaddingCharacter:@"x"]; // choice padding Char 
NSString *convertNumber = [formatter stringFromNumber:number]; 
return convertNumber; 

을하지만 그것은 작동하지 않습니다 ..

다음과 같은 형식을 사용자 정의하십시오.

[formatter setPositiveFormat:@"#.#E+00]; // my string is from my intuition .... 

해결책입니까?

두 번째 질문 : 무엇을 의미하는지 모르겠다. #? 또한 00 문자열에? (Doc에서 답을 찾을 수 없음)

고마워!

답변

4

나는 당신이 당신의 서식 수는 정확히 다음과 같은 형식이 원하는 것을 이해한다. (2 자리)를 다음과 같이 (2 자리) E + (2 자리)

당신은 당신의 NSNumberFormatter을 구성 할 수 있습니다

NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init]; 
[formatter setPositiveFormat:@"00.00E+00"]; 
NSNumber *number = [NSNumber numberWithFloat:121212.12]; 
NSString *convertNumber = [formatter stringFromNumber:number]; 

0#의 의미는 this link입니다.

+0

감사합니다. sch! – MaRiriAndMe

+0

'[NSNumber numberWithFloat : 121212.12]'는 새로운 숫자 리터럴 구문을 사용하여'@ (121212.12) '로 작성할 수 있습니다. –

관련 문제