如何在不舍入的情况下将字符串转换成浮动在目标C中。
我试图转换一个字符串8.56021285234;
float result=[string floatValue];给出8.560213,四舍五入。
我怎么才能避免这种情况?我怎么才能得到确切的价值?
发布于 2013-11-29 09:53:08
问题是你用的是浮子。浮子通常只能容纳7位数的最大值.一双可以容纳更多的数字。浮点数是32位,而双位是64位,因此给它“双”的精度。一个简单的解决你的问题的方法是:
double result = [string doubleValue];
在日志记录时,请确保使用NSLog(@"%.12f",result);将整个双倍显示为%f,默认为6小数点精度。
发布于 2013-11-29 09:46:27
你不能在一个浮动中放置超过7位数的精度。您需要一个精度更高的类型,比如double,请参见以下内容:
发布于 2013-11-29 09:48:35
尝试双倍而不是浮动:
NSString *val = @"8.56021285234";
double num = [val doubleValue];
NSLog(@"Number ==> %f",num);https://stackoverflow.com/questions/20282651
复制相似问题