0
我有BigDecimal值。如何在Java中爲BigDecimal設置特定的精度?
BigDecimal price = new BigDecimal("100500100500.9999999").setScale(2, BigDecimal.ROUND_HALF_EVEN);
它打印100500100501.00
,雖然我需要100500100500.99
。是否有可能對精度評估進行一些限制?
我有BigDecimal值。如何在Java中爲BigDecimal設置特定的精度?
BigDecimal price = new BigDecimal("100500100500.9999999").setScale(2, BigDecimal.ROUND_HALF_EVEN);
它打印100500100501.00
,雖然我需要100500100500.99
。是否有可能對精度評估進行一些限制?
您可以使用setScale
中的舍入模式常量ROUND_DOWN
。但是,overloaded setScale
method that takes a RoudingMode
is preferred。
BigDecimal price = new BigDecimal("100500100500.9999999")
.setScale(2, RoundingMode.DOWN);
輸出:
100500100500.99
感謝您的好回答。 – Alex 2014-09-26 23:10:16
你看看該文檔的其他可能的舍入模式? http://docs.oracle.com/javase/7/docs/api/java/math/BigDecimal.html – 2014-09-26 23:08:05
哦,謝謝你的鏈接。 – Alex 2014-09-26 23:09:28