1. ホーム
  2. c++

[解決済み] C++ int float キャスティング

2022-03-01 19:50:10

質問

なぜmは常に=0なのか?someClassのxとyのメンバは整数です。

float getSlope(someClass a, someClass b)
{           
    float m = (a.y - b.y) / (a.x - b.x);
    cout << " m = " << m << "\n";
    return m;
}

解決方法は?

整数の割り算が発生し、その結果が表示される。 であり、整数である が float として代入されます。もし結果が1より小さければ0になります。

分割する前に、式をfloatにキャストしておくとよいでしょう。

float m = static_cast<float>(a.y - b.y) / static_cast<float>(a.x - b.x);