编译环境:-O2 -Wall -std=c++14
刚刚写题的时候,发现了一个谜之错误。
题目要求保留 2 位小数,我是这么写的:
printf("%.2lf\n",ans);
发现它输出 7.62,与样例 7.63 不符。我看着就不对劲,错了一位?随后,我使用 printf 不手控精度输出 ans 的值,输出为 7.625000。(???)
随后,我写了一个测试程序:发现更离谱的来了:
#include <bits/stdc++.h>
using namespace std;
int main()
{
double a=7.625000;
cout<<round(a*100)/100<<endl;
cout<<fixed<<setprecision(2)<<a<<endl;
printf("%.2lf\n",a);
return 0;
}
输出:
7.63
7.62
7.62
求大神指点!