供应的37.35
一个浮点值,我得到的37.3
奇结果从DecimalFormat的舍入半升
一个字符串这里是我的代码。
DecimalFormat format = new DecimalFormat(".0");
format.setRoundingMode(RoundingMode.HALF_UP);
return format.format(37.35f);
我期望收到一个字符串37.4
。我究竟做错了什么?
我认为这可能是由于传递一个浮点数,但是我没有选择关于我接收的变量的类型。即使float
的实际表示为37.3500221215051544
,它仍应该向上舍入?
把这个值格式化为一个字符串的要点是我可以将它传递给BigDecimal
并且具有确切的值,例如37.4
。
请ü必须使用BigDecimal类在Java中!它有一个方法来收集和得到你想要的字符串,双等格式。而最重要的是,你不会放松使用这个类的精度! – Catluc