重複の可能性:
浮動小数点の不正確な例
double a = 0.3;
std::cout.precision(20);
std::cout << a << std::endl;
結果: 0.299999999999999889
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 回使用すると、結果は本来よりも大きくなります。
どうしてこれなの?この場合、正しい結果を得るにはどうすればよいですか?