两个double数相加除2小数部分竟然被截断?

图片说明

c++

8个回答

输出为 100001

(double)((a+b)/2)这样呢

u014681847
上威 如果取a = 100, b = 101就能得100.5,取100001 跟100000就没有小数
接近 5 年之前 回复

所以还是标准IO好使。。

2.0前面也加个double,然后最后结果前面也加个double

double a = 100000.0;
double b = 100001.0;
double c = ((a+b)*1.0)/2.0;这么写

加上#include 这个头文件,然后在输出那改成这样:cout<<setiosflags(ios::fixed)<<setprecision(7)<<d<<endl;//7表示小数点后面的位数,位数不够,末尾添0

被截断什么意思,输出的是什么结果啊

试试把结果赋值给一个变量,再输出。
double a = 100000.0;
double b = 100001.0;
double c = ((a+b)*10)/2;
cout<<c<<endl;

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