2015-05-20 30 views
0

時,我有幾個變量,這些變量int和我與他們這個操作:在Java的限制十進制數字採用雙

迫使他們是雙是因爲我想計算百分比。問題是,(當然)我得到的結果像65.88841666666666,我想得到一個只有2位小數的數字,我不介意近似它,我也可以削減所有數字,所以我會得到65.88,而不是65.89。我怎樣才能做到這一點?

+1

你確實想改變*值*'的向percentage'只能容納2位過去小數點,或者你想*只顯示小數點後面的前2位數字? – azurefrog

+1

可能的重複[在java中舍入2位小數?](http://stackoverflow.com/questions/11701399/round-up-to-2-decimal-places-in-java) – Jon

回答

3

您可以使用圓形爲

double roundedPercentage = (double) Math.round(percentage * 100)/100; 
3

如果這是顯示結果,您可以使用格式,如:

String formatted = String.format("%.2f", 65.88888); 

這裏.2意味着顯示小數點後2位。對於更多的選擇,嘗試BigDecimal的

0

雖然什麼@CHERUKURI建議,是我真正用自己的,但它會產生不準確的結果時,它是MAX_DOUBLE。

Math.ceil(percentage) + Math.ceil((Math.ceil(percentage) - percentage) * 100)/100.0; 

它有太多的方法調用,但是,它會給你應該的。

IF數量較少,再下面是不夠好:

(double) Math.round(percentage * 100)/100;