我使用的是HALF_UP舍入模式DecimalFormat的,我有地方工作不正常的escenery,我不知道为什么.
DecimalFormat df = new DecimalFormat("#.##");
df.setRoundingMode(RoundingMode.HALF_UP);
float tmp = (float) (0.5 * 1.05);
df.format(tmp);
float mul = Float.parseFloat(df.format(tmp));
Run Code Online (Sandbox Code Playgroud)
该mul变量的值,我希望有0.53值,我收到0.52值.
我正在使用Java 1.8.0_131.
已解决的最终法规
BigDecimal mul = new BigDecimal(0.5).multiply(new igDecimal(1.05));
mul = mul.setScale(2, RoundingMode.HALF_UP);
System.out.println(mul);
Run Code Online (Sandbox Code Playgroud)