读书人

两个double类型的除法结果为什么会这

发布时间: 2012-03-15 11:50:38 作者: rapoo

两个double类型的除法,结果为什么会这样?
double i = 12.0;
double j = 5.0;
double h = i / j;


上面的h计算出来是2.3999999..?为什么不是2.400000..?麻烦各位高手讲解一下,最好可以说出解决的办法,谢谢!

[解决办法]
其实是2.4,不过是编译器显示精度的问题而已,不必太关心这个
[解决办法]
浮点数精度误差.
[解决办法]
浮点数在计算机中的表示是有误差的,浮点数也是有有效位数的
[解决办法]

C/C++ code
#include <stdio.h>int main(int argc, char *argv[]){     double i = 12.0;    double j = 5.0;    double h = i/j;    printf("%lf\n",h);        return 0;}
[解决办法]
正常现象,不必惊慌

读书人网 >C语言

热点推荐