cout << setprecision (2) << fixed;
cin>>R;
cout<<R;
现在如果我设置 R = 2.3456 , 这给了我 2.34 。 但是在计算 R 时,如果我将此数字作为输入,则 2.3456 。 但是我想在做精确之后把 2.34 作为输入。 我该怎么做?
答案 0 :(得分:1)
无法以特定精度获取输入。像std::setprecision
这样的东西只适用于输出流。你可以手动&#34;截断&#34;四舍五入的精确度。
这是一个例子:
double a;
std::cin >> a;
a = std::round(a * 100.0) / 100.0;
善于decimal floating points may not be represented percisely in computers。
答案 1 :(得分:1)
我认为更通用的方法是:
#include <math.h>
double roundTo( double inNumber, int n ) {
double nn = pow( 10, n );
// static_cast< dest_type > is more modern and standard way ..
return static_cast<double>( static_cast<long long>( inNumber * nn ) / nn );
}