下面的代碼,它使用RoundingMode.HALF_EVEN
,舍入模式的BigDecimal在Java中
BigDecimal value1 = new BigDecimal("4.5");
value1=value1.setScale(0, RoundingMode.HALF_EVEN);
BigDecimal value2 = new BigDecimal("6.5");
value2=value2.setScale(0, RoundingMode.HALF_EVEN);
System.out.println(value1+"\n"+value2);
顯示器分別4
和6
。在我看來,它應該分別顯示5
和7
,因爲丟棄的小數部分(在本例中爲5)左邊的數字是奇數。在這種情況下,它執行RoundingMode.HALF_UP
並要在RoundingMode.HALF_UP
情況下,RoundingMode.UP
是當丟棄小數部分是> = 0.5(其爲真)進行,否則RoundingMode.DOWN
被執行。
'4'和'6'是'ROUND_HALF_EVEN'中的'EVEN'。 '.5'是'HALF'部分。 – 2013-03-12 02:36:38
對於後代,我不得不閱讀幾次以獲得它。一個對我來說很有意義的例子是,如果你四捨五入,那麼你距離6和7的距離相等。因爲6是平的,所以你選擇了那個。 – 2014-07-16 20:07:09