如何在C++中保持Double的精度

1 c++ floating-point rounding

main()
{
   double d1 = 1234.1;
   cout << "d1 = 1234.1 --> " << d1 << endl;
   double d2 = 1234.099999;
   cout << "d2 = 1234.099999 --> " << d2 << endl;
}
Run Code Online (Sandbox Code Playgroud)

输出:

d1 = 1234.1 --> 1234.1
d2 = 1234.099999 --> 1234.1
Run Code Online (Sandbox Code Playgroud)

我实际上想打印确切的值d2,即1234.099999但不是相同的.

请建议我如何获得确切的价值.

Tim*_*Tim 7

你想要cout.precision http://www.cplusplus.com/reference/iostream/ios_base/precision/

另请注意,d2不是1234.099999,而d1不是1234.1

浮点数引入舍入误差,这就是为什么它们默认情况下舍入到较少的位置,以尝试显示有意义的结果.