如何将预先设定的值作为输入?

时间:2017-11-19 08:50:51

标签: c++ precision

cout << setprecision (2) << fixed;
cin>>R;
cout<<R;

现在如果我设置 R = 2.3456 , 这给了我 2.34 。 但是在计算 R 时,如果我将此数字作为输入,则 2.3456 。 但是我想在做精确之后把 2.34 作为输入。 我该怎么做?

2 个答案:

答案 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 );
}