將double到2位小數進行舍入時遇到問題。我知道這個問題在很多地方都有提出。但是我的問題稍有不同,我無法在其他地方找到它。Java - 將雙精度/浮點數四捨五入爲2位小數時出現意外結果
據我所知,有兩種方法可以做到這一點。
Math.round(double*100.0)/100.0
DecimalFormat(「###.##」)
我想使用第一種方式:一個自定義的方式來圓形雙。 當第二個小數爲0時,結果將只打印第一個小數,忽略第二個小數。
例如,
Math.round(1.23333*100.0)/100.0
結果是1.23。這很好。Math.round(3.90*100.0)/100.0.
結果是3.9。發生問題。我想顯示3.90而不是3.9Math.round(3*100.0)/100.0
。結果是4.0。我想4.00而不是4.0
所以,我的問題是,我怎麼可以有2個小數的double值,不管最後一個小數是0還是不是。 我知道我可以用第二種方式 - DecimalFormat(「###.##」)
來實現我想要的!但是用第一種方法可以做到嗎?
編輯:謝謝你的答案。它看起來不可能使用round()方法來實現它。但是,有些人建議使用兩種方式的組合來實現它。但我認爲只用DecimalFormat(「###.##」)
就可以得到我想要的。任何人都可以確認嗎?
我認爲只用DecimalFormat而不用Math.round也可以得到我想要的。我想知道如果我只能使用Math.round()來做到這一點。我想現在的答案是「不」。 – Joey 2013-05-02 08:05:18