2012-02-13 24 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