太极越狱10.3.1:C语言中float 精确具体是怎样的 结果为什么多加了0.000003

来源:百度文库 编辑:高考问答 时间:2024/05/08 12:32:25
#include <stdio.h>

void main ()
{
float neg_flt = -100.23;
float pos_flt = 100.23;
printf("The floating point values are %+f %+f\n",
neg_flt, pos_flt);
}

结果是 The floating point values are -100.230003 +100.230003

因为float和double是存在误差的.这两种数据的最后几位一般都是无效的,也就是说最后几位的值是不确定的,好使你指定了,比方说有这么一句:
float f = 24.000023,你再显示它的值的话,也不一定就会是24.000023,所以一般处理或显示结果时,都只考虑前几位小数,后面的必须忽略.整数部分就不存在误差了.

单精度型占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38,只能提供七位有效数字。