0

なぜコードは

double slope = (double)changeY/changeZ 

私が持っているプログラムで、changeX = 20 と changeY = 10 (両方の整数) の場合、勾配を 0.0 に設定しますか?

4

1 に答える 1

10

間違った変数を使用しているようです。これを試して:

int changeX = 20;
int changeY = 10;

double slope = (double)changeY/changeX;

キャスト演算子 () は、/ よりも優先度が高くなります。この式は次のように評価されます。

  • にキャストchangeYdoubleます。
  • に暗黙的に変換changeXdoubleます。一方のオペランドがdoubleである場合、もう一方のオペランドも同様にバランスを取りdoubleます (これは正式には「通常の算術変換」と呼ばれます)。
  • 2 つのオペランドを除算します。結果はダブルになります。
  • この一時的な「結果倍精度」を別の倍精度勾配に格納します。
于 2012-11-26T12:04:46.040 に答える