为什么此转换为int会产生错误的结果

时间:2019-08-05 17:41:26

标签: c++

我在程序中发现了一个带有某些特定值的错误。转换为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

0 个答案:

没有答案