2012-02-13 39 views
2

我試圖使用NSNumberFormatter,我想用:-setPositiveFormat自定義的格式。NSNumberFormatter setPositiveFormat

我想改造121212.1212.12E+04

我一定要使用9位和2位小數

我關閉,我的目標有:

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

非常感謝! – MaRiriAndMe 2012-02-14 07:27:10

+0

'[NSNumber numberWithFloat:121212.12]'可以寫成'@(121212.12)'使用新的數字文字語法。 – 2013-02-06 01:37:41