我正在尝试专门使用此值
new BigDecimal("23.025").setScale(2, RoundingMode.HALF_EVEN);
输出为23.02,但应为23.03。是一个错误吗?
出于好奇DecimalFormat("#####0,00");
也不起作用
还有其他建议吗?
答案 0 :(得分:10)
RoundingMode#HALF_EVEN
JavaDoc 说
舍入模式向“最近的邻居”舍入除非两者 邻居是等距的,在这种情况下,向偶数取整 邻居
在您的情况下,even
的邻居是02
。
JavaDoc很重要!经常阅读。
对于RoundingMode
,可以找到here(Java 8版本)。