0

有没有办法在目标 c 中使用科学记数法并让它只显示三个有效数字?我目前使用的是:

string = [NSString stringWithFormat:@"%e", floatNumber];
// floatNumber = 100000; string = 1.000000e+06

我只想要字符串 = 1.00e+06

4

1 回答 1

2

使用格式说明符“.2”,如下所示:

    string = [NSString stringWithFormat:@"%.2e", floatNumber];

从苹果的文档中:

NSString 格式化方法和 CFString 格式化函数支持的格式说明符遵循 IEEE printf 规范...

IEEE printf 规范中,如果您阅读描述部分,您会发现:

乙,乙

双参数应转换为“[-]d.ddde±dd”样式,其中基数字符前有一位数(如果参数非零,则非零),其后的位数等于精度;精度缺失的,取6;如果精度为零且不存在“#”标志,则不会出现基数字符。低位数字应以实现定义的方式四舍五入。E 转换说明符将产生一个带有“E”而不是“e”引入指数的数字。指数应始终包含至少两位数字。如果该值为零,则指数应为零。

于 2013-09-04T02:44:16.447 回答