需要头文件 #include <iomanip>
setprecision() 来用来保存有效数字,fixed 和 setprecision() 一起用就变成保存小数点后有效数字。fixed 可以通过 cout.unsetf(ios::fixed) ; 这段代码关掉。不然会一直开着。fixed 有个地方需要注意的是可以保存的有效数字包括0,不开 fixed 的话,即使保存3个有效数字,小数点后的0也会自动省略。即 1.2 要是 setprecision(3) 结果还是1.2 而不是1.20. 所以通常想要像在 printf() 中一样使用,都是要开 fixed 的!
#include <iostream>
#include<iomanip>
using namespace std;
int main()
{
double a=46.21534,b=1.20001;
cout.setf(ios::fixed);
cout<<fixed<<setprecision(2)<<b<<endl;
cout.unsetf(ios::fixed);
cout << setprecision(2) << b<<endl;
cout<<setprecision(5)<<a<<endl;
cout<<setprecision(1)<<a<<endl;
return 0;
}
#include <iostream>
#include <iomanip>
#include <cmath>
const double PI = 3.1415926;
int main()
{
int r;
std::cin >> r;
double area = 4.0 / 3 * PI * pow(r, 3);
std::cout << std::fixed << std::setprecision(3) << area << std::endl;
return 0;
}
|