我想如下做一個非常基本的操作:Java不打印小數
double a=21/5;
System.out.println(a);
然而,每次我得到4.0
作爲輸出,而不是4.2
。我第一次遇到這個。我一直在使用Java多年,但從未遇到過這種晦澀難懂的事情。
我想如下做一個非常基本的操作:Java不打印小數
double a=21/5;
System.out.println(a);
然而,每次我得到4.0
作爲輸出,而不是4.2
。我第一次遇到這個。我一直在使用Java多年,但從未遇到過這種晦澀難懂的事情。
您使用整數除法,其結果總是整數 你應該使用這樣的事情。
double a=(double)21/5;
鑄造師或指定的參數之一爲十進制迫使回報爲雙:
double a = (double)21/5;
- 或 -
double a = 21.0/5;
只投其中一個號碼加倍:
double a = 21/5.0;
你在做整合呃......師
嘗試:
double a = 21.0/5;
強制投翻番。 double a = 21.0/5
這就是所謂的算術推廣。這意味着方程中的所有項都等於最高精度的變量類型。在這種情況下,雙重。
劃分是一個整數除法,所以21/5 = 4,然後澆鑄雙人,所以4.0。 – 2013-03-01 16:24:07
@SotiriosDelimanolis:顯然!該死的我的大腦。感謝您拯救它。 – xan 2013-03-01 16:25:39
@SotiriosDelimanolis:這是一個*答案*,而不是評論。一個我已經投票了。 :-) – 2013-03-01 16:26:17