双倍乘法给出圆形结果

Vik*_*kas 4 c++ double multiplication

double a = 2451550;
double b = .407864;
double c= a*b;
cout<<c;
Run Code Online (Sandbox Code Playgroud)

我期待结果是"999898.9892",但获得"999899".我需要实际的不结果.请建议.

Dre*_*all 13

默认情况下,iostreams输出6位精度.如果你想要更多,你必须要求它:

std::cout.precision(15);
Run Code Online (Sandbox Code Playgroud)

  • @Vikas:再次阅读答案 - 您已经获得了所需的精确度 - 您只是因为显示值的方式而感到困惑. (8认同)
  • 您将获得52位精度,但由于浮点运算的工作原理,它不会"精确". (2认同)