時,我有幾個變量,這些變量int和我與他們這個操作:在Java的限制十進制數字採用雙
迫使他們是雙是因爲我想計算百分比。問題是,(當然)我得到的結果像65.88841666666666,我想得到一個只有2位小數的數字,我不介意近似它,我也可以削減所有數字,所以我會得到65.88,而不是65.89。我怎樣才能做到這一點?
時,我有幾個變量,這些變量int和我與他們這個操作:在Java的限制十進制數字採用雙
迫使他們是雙是因爲我想計算百分比。問題是,(當然)我得到的結果像65.88841666666666,我想得到一個只有2位小數的數字,我不介意近似它,我也可以削減所有數字,所以我會得到65.88,而不是65.89。我怎樣才能做到這一點?
您可以使用圓形爲
double roundedPercentage = (double) Math.round(percentage * 100)/100;
如果這是顯示結果,您可以使用格式,如:
String formatted = String.format("%.2f", 65.88888);
這裏.2意味着顯示小數點後2位。對於更多的選擇,嘗試BigDecimal的
雖然什麼@CHERUKURI建議,是我真正用自己的,但它會產生不準確的結果時,它是MAX_DOUBLE。
Math.ceil(percentage) + Math.ceil((Math.ceil(percentage) - percentage) * 100)/100.0;
它有太多的方法調用,但是,它會給你應該的。
IF數量較少,再下面是不夠好:
(double) Math.round(percentage * 100)/100;
你確實想改變*值*'的向percentage'只能容納2位過去小數點,或者你想*只顯示小數點後面的前2位數字? – azurefrog
可能的重複[在java中舍入2位小數?](http://stackoverflow.com/questions/11701399/round-up-to-2-decimal-places-in-java) – Jon