NSNumberFormatter科学表格输出

时间:2013-11-03 13:20:41

标签: objective-c nsnumber nsnumberformatter

我有NSNumber和NSResultFormatter,它将数字转换为字符串并在屏幕上显示。

科学形式大数字输出为“1.345e10”,小数字输出为“1.345e-10”。

我希望将大数字输出为“1.345e + 10”,就像标准的iOS calc app一样。我怎么能这样做?

1 个答案:

答案 0 :(得分:4)

您可以通过设置自定义数字格式来实现这一目标,例如:

NSNumberFormatter *fmt = [[NSNumberFormatter alloc] init];
[fmt setExponentSymbol:@"e"];
[fmt setPositiveFormat:@"0.###E+0"];
NSString *s = [fmt stringFromNumber:@(12345678900)];
// 1.235e+10

自定义数字格式记录在http://www.unicode.org/reports/tr35/tr35-25.html#Number_Format_Patterns