double类型的数据printf输出,当值很大时的输出问题
  double a=11111*11111;
doube b=111111111*111111111;
double c=11个1*11个1;

三者输出如下:
图片说明
为什么会这样?
同时,对于int型也有下面的结果:
图片说明
不是非常理解。希望能够得到解答,谢谢!!

3个回答

因为你直接写整数。那么它的乘法其实是整数乘法,最后转换为double
而整数乘法溢出了。

doube b=(double)111111111*(double)111111111;
这么写看看

输出遇到问题,具体是什么问题呢?
可以考虑一下使用 加阶码标志“e”或“E”输出。直接输出数字可能是会遇到无法输出的问题。

double a=11111.0*11111.0;

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐