使用 BigDecimals 计算百分比
Calculate percentage with BigDecimals
我想计算我收到的 BigDecimal 格式的数字:
BigDecimal number1 = new BigDecimal("17");
int percentage = 50;
BigDecimal percentageAmount = number1.multiply(new BigDecimal(percentage/100));
但我得到了 0 !
将除法结果转换为double
。整数除法按预期返回零。这应该有效。
BigDecimal percentageAmount = number1.multiply(new BigDecimal((double)percentage/100));
或者,将 100 变为 100.0。
BigDecimal percentageAmount = number1.multiply(new BigDecimal(percentage/100.0));
如果您使用的数字很小,这些解决方案就可以使用。但是当数字很大时,这些解决方案将不会给出精确的结果。这将是避免精度错误的最佳方法:
BigDecimal percentageAmount = number1.multiply(BigDecimal.valueOf((double)percentage/100));
我想计算我收到的 BigDecimal 格式的数字:
BigDecimal number1 = new BigDecimal("17");
int percentage = 50;
BigDecimal percentageAmount = number1.multiply(new BigDecimal(percentage/100));
但我得到了 0 !
将除法结果转换为double
。整数除法按预期返回零。这应该有效。
BigDecimal percentageAmount = number1.multiply(new BigDecimal((double)percentage/100));
或者,将 100 变为 100.0。
BigDecimal percentageAmount = number1.multiply(new BigDecimal(percentage/100.0));
如果您使用的数字很小,这些解决方案就可以使用。但是当数字很大时,这些解决方案将不会给出精确的结果。这将是避免精度错误的最佳方法:
BigDecimal percentageAmount = number1.multiply(BigDecimal.valueOf((double)percentage/100));