相关疑难解决方法(0)

C++浮点精度

可能重复:
浮点不准确示例

double a = 0.3;
std::cout.precision(20);
std::cout << a << std::endl;
Run Code Online (Sandbox Code Playgroud)

结果:0.2999999999999999889

double a, b;
a = 0.3;
b = 0;
for (char i = 1; i <= 50; i++) {
  b = b + a;
};
std::cout.precision(20);
std::cout << b << std::endl;
Run Code Online (Sandbox Code Playgroud)

结果:15.000000000000014211

所以..'a'比它应该小.但是,如果我们采取'a'50次 - 结果会比它应该更大.

为什么是这样?如何在这种情况下得到正确的结果?

c c++ floating-point precision floating-accuracy

7
推荐指数
3
解决办法
4万
查看次数

标签 统计

c ×1

c++ ×1

floating-accuracy ×1

floating-point ×1

precision ×1