我有一个Objective-C项目,需要显示0.00000217之类的数字,以及非常小的数字。问题是,Objective-C将其四舍五入到小数点后六位,因此它显示为0.000002。是否有类型可显示更多小数位?我的代码:
float floatValueOfSmallNumber = [value floatValue];
[theLabel setText:[NSString stringWithFormat:@"%f", floatValueOfSmallNumber]];
谢谢!
答案 0 :(得分:10)
虽然float
只有~7个有效小数位,但这不是你在这里遇到的问题;毕竟,0.00000217
只有三位有效数字。
您正在使用从C继承并由此定义的%f
格式说明符(7.21.6格式化输入/输出函数):
表示浮点数的双参数在样式[ - ] ddd.ddd中转换为十进制表示法,其中小数点字符后面的位数等于精度指定。 如果缺少精度,则视为6 ;如果精度为零且未指定#flag,则不显示小数点字符。如果出现小数点字符,则在其前面至少出现一个数字。该值四舍五入到适当的位数。
使用double
不会改变这一点;相反,您需要更改格式说明符。如果您不介意科学记数法,可以使用%e
或%g
,但另一种方法是使用精确说明符:%.10f
,例如,将打印十位十进制数字。< / p>