double a = 0.3;
std::cout.precision(20);
std::cout << a << std::endl;
结果: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;
结果:15.000000000000014211
因此,“ a”小于应有的大小。但是,如果我们将“ a”取50倍,结果将大于应有的结果。
为什么是这样?以及在这种情况下如何获得正确的结果?
慕码人2483693
拉风的咖菲猫
陪伴而非守候