将字符串转换为在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.?