Java BigDecimal 除法乘法四舍五入到2位小数
Java BigDecimal divide and multiply and round to 2 decimals
我有一个 Java BigDecimal 表达式,如下所示:
(totalPrep.divide(totalCase, 2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(100))
哪里
BigDecimal totalCase = BigDecimal.ZERO;
BigDecimal totalPrep = BigDecimal.ZERO;
我必须将 totalPrep 除以 totalCase 并将结果乘以 100 以获得以 % 为单位的结果值。
66.6666666666666666666666666666666666667
假设total prep为十进制2,toalCase为3,则数学结果为66.66666666666666666666666666666666666667。我想将其连接到小数点后两位 66.67%
有什么建议吗?
如果要2 / 3
得到66.67
,需要先乘,再除,四舍五入到小数点后2位:
BigDecimal totalPrep = BigDecimal.valueOf(2);
BigDecimal totalCase = BigDecimal.valueOf(3);
BigDecimal result = totalPrep.multiply(BigDecimal.valueOf(100))
.divide(totalCase, 2, RoundingMode.HALF_UP);
System.out.println(result); // prints: 66.67
那将计算2 * 100 = 200
,然后200 / 3 = 66.67
(四舍五入)
先除法的时候计算2 / 3 = 0.67
(四舍五入),然后0.67 * 100 = 67.00
,显然不是你想要的
我有一个 Java BigDecimal 表达式,如下所示:
(totalPrep.divide(totalCase, 2, BigDecimal.ROUND_HALF_UP)).multiply(new BigDecimal(100))
哪里
BigDecimal totalCase = BigDecimal.ZERO; BigDecimal totalPrep = BigDecimal.ZERO;
我必须将 totalPrep 除以 totalCase 并将结果乘以 100 以获得以 % 为单位的结果值。 66.6666666666666666666666666666666666667
假设total prep为十进制2,toalCase为3,则数学结果为66.66666666666666666666666666666666666667。我想将其连接到小数点后两位 66.67%
有什么建议吗?
如果要2 / 3
得到66.67
,需要先乘,再除,四舍五入到小数点后2位:
BigDecimal totalPrep = BigDecimal.valueOf(2);
BigDecimal totalCase = BigDecimal.valueOf(3);
BigDecimal result = totalPrep.multiply(BigDecimal.valueOf(100))
.divide(totalCase, 2, RoundingMode.HALF_UP);
System.out.println(result); // prints: 66.67
那将计算2 * 100 = 200
,然后200 / 3 = 66.67
(四舍五入)
先除法的时候计算2 / 3 = 0.67
(四舍五入),然后0.67 * 100 = 67.00
,显然不是你想要的