问:浮点数在计算机中的值怎么跟输入的值不一样?
例如,float a = 5.6,b=5.0; printf("%.7f",a-b); 得到的结果就不是0.6
因为0.6不能精确地用2的幂次方代替,所以计算机保存的是舍入的近似值
一个十进制小数要能用浮点数精确地表示的必要条件是最后一位必须是 5 0.1 = 2^(-1) = 0.5 0.01 = 2^(-2) = 0.25 0.001 = 2^(-3) = 0.125 0.0001 = 2^(-4) = 0.0625 0.00001 = 2^(-5) = 0.03125
浮点数打印: %f ->float %lf ->double