2

我正在尝试使用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

1 回答 1

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看看#这个链接

于 2012-02-13T17:47:33.497 回答