灵异事件求解
  • 板块学术版
  • 楼主sunyizhe还是MC大佬
  • 当前回复20
  • 已保存回复20
  • 发布时间2023/5/8 21:01
  • 上次更新2023/10/23 16:18:39
查看原帖
灵异事件求解
481330
sunyizhe还是MC大佬楼主2023/5/8 21:01

编译环境:-O2 -Wall -std=c++14

刚刚写题的时候,发现了一个谜之错误。

题目要求保留 22 位小数,我是这么写的:

printf("%.2lf\n",ans);

发现它输出 7.627.62,与样例 7.637.63 不符。我看着就不对劲,错了一位?随后,我使用 printf 不手控精度输出 ansans 的值,输出为 7.6250007.625000。(???)

随后,我写了一个测试程序:发现更离谱的来了:

#include <bits/stdc++.h>
using namespace std;
int main()
{
	//freopen("input.in","r",stdin);
	//freopen("output.out","w",stdout);
	
	double a=7.625000;
	cout<<round(a*100)/100<<endl;//使用C++函数round
	cout<<fixed<<setprecision(2)<<a<<endl;//入门的setprecision
	printf("%.2lf\n",a);//我的写法
	return 0;
}

输出:

7.63
7.62
7.62

求大神指点!

2023/5/8 21:01
加载中...