也許我看不到明顯的事情,但:分割時輸出爲零嗎?
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 = (y2-y1)/(x2-x1);
System.out.println(res);
輸出:
0.0
爲什麼?
你需要首先定義這些變量作爲雙打和它應該工作。
您可以將結果轉換爲'double' – doublesharp
@doublesharp轉換結果不夠,但您也可以轉換第一個操作數 –
@JanDvorak這就是我的意思,但沒有。 – doublesharp
問題是你在做整數算術。你需要一個類型轉換,以分子或分母轉換爲浮點第一(例如):
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
等
投(y2-y1)/(x2-x1)
翻番象下面這樣:
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
嘗試
int x1 = 2;
int y1 = 4;
int x2 = 11;
int y2 = 7;
double res = (double)(y2-y1)/(x2-x1);
System.out.println(res);
你有框它 「而」 做的操作,而不是
後嘗試'雙RES =(Y2 -y1)/((double)x2-x1);' – irrelephant