多分私は明白なことを見ることができませんが:
int x1 = 2;
int y1 = 4;
int x2 = 11;
int y2 = 7;
double res = (y2-y1)/(x2-x1);
System.out.println(res);
出力:
0.0
なんで?
問題は、整数演算を実行していることです。最初に分子または分母を浮動小数点に変換するには、型キャストが必要です(例)。
int x1 = 2;
int y1 = 4;
int x2 = 11;
int y2 = 7;
double res = (double)(y2-y1)/(x2-x1);
System.out.println(res);
整数で除算を行うと、結果は最も近い整数に切り捨てられます(これにより、フロア演算と同じ結果が得られます)。例えば:
0 / 2 == 0
1 / 2 == 0
2 / 2 == 1
3 / 2 == 1
等
最初にこれらの変数をdoubleとして定義する必要があり、それが機能するはずです。
試す
int x1 = 2;
int y1 = 4;
int x2 = 11;
int y2 = 7;
double res = (double)(y2-y1)/(x2-x1);
System.out.println(res);
操作後ではなく、操作の「実行中」にボックス化する必要があります
(y2-y1)/(x2-x1)
以下のように2倍にキャストします。
int x1 = 2;
int y1 = 4;
int x2 = 11;
int y2 = 7;
double res = (double)(y2-y1)/(x2-x1);
System.out.println(res);
Output: 0.3333333333333333