BigDecimal的月利率

时间:2019-07-15 13:51:49

标签: java bigdecimal

经常有人说(例如,乔什·布洛赫(Josh Bloch)在“有效的Java”中),我们不应在财务计算中使用浮点类型,例如double。那么,在给定年利率的情况下,我们如何计算月利率?

公式为:

monthly rate = (1 + annual rate)^(1/12) - 1

但是BigDecimal没有pow(BigDecimal)方法,也没有nthRoot(int) method. So we can't call rate.pow(1.0 / 12)nor rate.nthroot(12)`,因为这些方法没有存在。如果我们这样做:

monthlyRate = BigDecimal.valueOf(Math.pow(1 + rate.doubleValue(), 1.0/12) - 1)

然后它违反了使用BigDecimal的目的,以避免使用double

0 个答案:

没有答案