#include
#include
int main()
{
printf("%lf\n",26.0/82.0);
printf("%lf\n",26.0/82);
printf("%lf\n",26/82.0);
printf("%lf\n",26/82);
printf("%lf\n",26*1.0/82);
return 0;
}
//为什么这样26/82会不是0?
因为 26/82 是在 %d 的情况下才输出0噢,而楼主的是%lf的双精度 格式输出,输出的应该是很长的一串数字。应该有16位数字叭。
我发现哪一行代码放的位置不同,结果也不同。
你把那一行放到最上面就是0了;
这个参数格式错误,结果就不可知了……
(据说printf很坑……)
输出打印的格式是双精度浮点型,会有一个精确的值,如果你输出格式是整型,那么将会去掉小数点之后的数据,并且不会给你四舍五入。
大佬可以试一下,注释掉几个printf就会发现问题,只输出两个答案还是0,但输出三个的话,答案就不是0了