printf双重数字,没有科学记数法

时间:2015-03-24 07:10:55

标签: objective-c string-formatting

我想在

中使用printf样式的格式字符串
+ stringWithFormat:

将double转换为具有2位有效数字的字符串,但没有科学记数法。 %.2g使用科学记数法,%。2f限制为十进制后的数字而不是有效数字。我希望0.000232变为“0.00023”,而不是“0.00”或“3.4e-2”。 这可能吗?

1 个答案:

答案 0 :(得分:0)

我相信这个代码块可以解决您的问题。

NSNumberFormatter *format = [[NSNumberFormatter alloc] init];
[format setNumberStyle:NSNumberFormatterDecimalStyle];
[format setMaximumSignificantDigits:2];
NSNumber *numb = [NSNumber numberWithDouble:0.000232];
NSString *txt = [format stringFromNumber:numb];
NSLog(@"%@",txt);

我创建了一个带有十进制样式编号的格式化程序,并将其有效数字设置为2.您可以更改最大有效数字以满足您的需要。我希望它有所帮助。