首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

两个double类型的除法,结果为什么会这样?该如何解决

2012-03-15 
两个double类型的除法,结果为什么会这样?double i 12.0double j 5.0double h i / j上面的h计算出

两个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;}
[解决办法]
正常现象,不必惊慌

热点排行