如何设置通过静态铸造获得的值的精度水平?

时间:2017-02-08 14:23:02

标签: c++

我想将变量correctAnswer的精度设置为最大2或3。我不想格式化输出,但以最高3精度存储在内存中。 ab都是整数值。

double correctAnswer = static_cast<double>(a) / b;

2 个答案:

答案 0 :(得分:2)

您无法为演员表设置精度。但你可以输出

double d = 3.14159265358979;
std::cout.precision(3);
std::cout << "Pi: " << std::fixed << d << std::endl;

答案 1 :(得分:1)

您可以使用整数运算:

const int precision = 100;
double correctAnswer = precision * a / b / static_cast<double>( precision );

您需要确保precision * a仍然适合int或使用更大的类型,当您比较/输出correctAnswer时,您仍然需要正确处理double