我在程序中发现了一个带有某些特定值的错误。转换为int
是错误的。结果应该是201,但是结果是200。为什么错了,以及如何安全地转换为int
?
#include <iostream>
using namespace std;
int main()
{
double y = 591860.6;
double x = 591820.4;
double r = 0.2;
cout << (y - x) / r << " " << (int)((y - x) / r) << endl;
return 0;
}
201200
我找到了一种解决方法,但我不明白为什么会起作用
(int)(float)((y - x) / r)
201201