对于float类型,C++默认只保留6位有效数字如下图:上面为输入,下面为输出。
这会造成很多情况下的精度丢失,这是我们不需要的
#include <iostream>
#include <iomanip> // 包含 <iomanip> 头文件
using namespace std;
int main()
{
//正常输出,只保留前六位有效数字。
float a;
cin >> a;
cout<< a<<endl;
//方法1:采用fixed和setprecision配合
float a;
cin >> a;
cout<< fixed<<setprecision(n)<<a<<endl;//n为小数点后位数。
//方法1需要每个输出都写fixed,很麻烦
//方法2
float a;
cin >> a;
cout<< std::fixed//直接控制所有的流使得后续的浮点数输出使用固定小数点表示法
cout<<setprecision(n)<<a<<endl;//n为小数点后位数。
}
解释:单独使用setprecision(n),为控制输入有效精度。
std::fixed 是 C++ 中的一个流操作符(I/O manipulator),它用于设置浮点数的输出格式为固定小数点表示法,而不是科学计数法。
5万+

被折叠的 条评论
为什么被折叠?



