将字符串转换为在Objective C中浮动而不将其四舍五入。

如何将字符串转换为在Objective C中浮动而不将其四舍五入。

我试图转换一个字符串8.56021285234;

float result=[string floatValue];

给出了8.560213,四舍五入的值。

我怎样才能避免这种情况? 我如何得到确切的价值?


问题是你正在使用浮动。 浮球通常最多只能保持7位数。 一个double可以容纳更多的数字。 一个浮点数是32位,而一个double是64位的,因此它的精度是“双倍”。 解决您的问题的一个简单方法是:

double result = [string doubleValue];

记录时,确保使用NSLog(@"%.12f",result); 显示整个double,因为%f默认只有6位十进制精度。


浮点数不能超过7位精度。 你需要一个更精确的类型,比如double,请看这里:

浮动和双重之间的区别


如果你想转换它使用

 double result = [string doubleValue];

为了显示它,使用%.10f来指定小数位:

NSLog(@"%.10f", result);
链接地址: http://www.djcxy.com/p/78625.html

上一篇: Convert a string to float in Objective C without rounding it.?

下一篇: What's the difference between float and double?