今天在做poj 1114时要求四舍五入,结果WA了,一开始以为板子有问题,结果按照题解一点一点修改没有问题。
然后在该输出时发现竟然A了,经过测试才知道printf四舍五入有问题,结果如下:
printf("%.0lf\n",x);
//不能四舍五入,当x的整数部分为偶数时.5不进位,而x的整数部分为奇数.5进位
//真坑
目前所了解的有两种方法
1.round()函数
cout << round(ans) << endl;
2.采用加0.5下取整方式
cout << (int)(ans + 0.5) << endl;