浮点计算学习笔记2

tech2026-04-02  1

问:浮点数在计算机中的值怎么跟输入的值不一样?

例如,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

最新回复(0)