2012-02-13 2 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 .... 

解決策ですか?

2番目の質問:何を意味するのかわかりません#?また、文字列に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

ありがとうございました。 – MaRiriAndMe

+0

'[NSNumber numberWithFloat:121212.12]'は、新しい数値リテラル構文を使って '@(121212.12) 'と書くことができます。 –

関連する問題