我尝试特别使用这个值
new BigDecimal("23.025").setScale(2, RoundingMode.HALF_EVEN);
输出为23.02,但应为23.03。这是个bug吗?
出于好奇,DecimalFormat("#####0,00");
也不能工作
还有其他建议吗?
发布于 2019-03-01 04:23:07
RoundingMode#HALF_EVEN
JavaDoc说
舍入模式,除非两个邻域的距离相等,否则向“最近邻域”舍入,在这种情况下,向偶数邻域舍入
在您的示例中,even
邻居是02
。
JavaDoc很重要!一定要读一读。
对于RoundingMode
,可以在here (Java8版本)中找到。
https://stackoverflow.com/questions/54933630
复制相似问题