我有兩個變量:怎麼辦關於鑄造翻一番和int
double d1 = 15.20;
int i1 = 10;
我要除以100 I1,所以我可以得到0.1,然後我想在D1補充。
這裏是我試過
i1 = i1/100 result is 0
i1 = (int) ((double)i1/100); result is 0
我試着一對夫婦這樣的事情,但無論是我得到的結果0或2
能任何人的事請告訴我如何使用wrt double和int來執行操作。我在Java中很新
我有兩個變量:怎麼辦關於鑄造翻一番和int
double d1 = 15.20;
int i1 = 10;
我要除以100 I1,所以我可以得到0.1,然後我想在D1補充。
這裏是我試過
i1 = i1/100 result is 0
i1 = (int) ((double)i1/100); result is 0
我試着一對夫婦這樣的事情,但無論是我得到的結果0或2
能任何人的事請告訴我如何使用wrt double和int來執行操作。我在Java中很新
i1 = (int) ((double)i1/100);
由於i1
是integer
,不管什麼它轉換右側/回合結果爲整數。因此,你的結果0.1
轉換回0
。
將其存儲在double
中以保留double
結果。
double result = ((double)i1/100);
甚至更好,轉換任何操作數以double
告訴結果應該是一個double
,這樣就可以完全避免鑄造。
double result = i1/100.0;
記得整數除以產生一個整數太... 如果你想避免再鑄造這將是確定申報100 100.0(字面雙),該操作將推動可變I1成一張雙人牀和結果會產生一個雙太... i1/100.0;
剩下的就是類似於其他答案
double d1 = 15.20;
int i1 = 10;
d1 += i1/100.0;
System.out.println(d1);
謝謝。我也試過這個。完美工作 – David
INT/INT結果在一個int。如果你混合類型,那麼你有一個dobule。
所以,例如,只是除以兩倍。無需公式複雜:
double result = d1 + i1/100.0;
你應該對不同的數據類型閱讀教程以及它們是如何相互關聯,再加上一般鑄造(這可真令人困惑,當你剛剛起步,但你會很快學會;))。
您的具體問題可以通過改變I1類型來解決,以雙爲整數只能包含整數。
那麼接下來,如果你這樣做:
double d1 = 15.2;
double i1 = 10.;
// short version
d1 += i1/100; // a += b is short for a = a + b
System.out.println(d1); //will print "15.3"
// extensive version
i1 = i1/100; // assigns the value 0.1 ti i1
d1 = d1 + i1;
System.out.println(d1); //will also print "15.3"
有在互聯網上有關這個主題的負載和偉大的教程的負載,可以考慮挑選一些出來,並開始learnng。;)
乾杯
你知道int變量只能包含整數值嗎? – Eran
如果您立即將結果賦值回int,那麼鑄造它並不好:/ –
您認爲'0.1'的int值會是什麼? –