根据以下写出java代码:预期输出: 8000 元存在建设银行8 年零86 天的利息:2308.800000 元 8000 元存在大连银行8 年零86 天的利息:2322.560000 元 两个银行利息相差13.760000 元
时间: 2024-05-12 19:13:03 浏览: 9
```
import java.math.BigDecimal;
import java.math.RoundingMode;
public class BankInterest {
public static void main(String[] args) {
BigDecimal amount = new BigDecimal("8000"); // 存款金额
int years = 8; // 存款年数
int days = 86; // 存款天数
// 建设银行利率
BigDecimal constructionBankRate = new BigDecimal("0.029");
BigDecimal constructionBankInterest = calculateInterest(amount, constructionBankRate, years, days);
System.out.println(amount + " 元存在建设银行" + years + "年零" + days + "天的利息:" + constructionBankInterest + " 元");
// 大连银行利率
BigDecimal dalianBankRate = new BigDecimal("0.0296");
BigDecimal dalianBankInterest = calculateInterest(amount, dalianBankRate, years, days);
System.out.println(amount + " 元存在大连银行" + years + "年零" + days + "天的利息:" + dalianBankInterest + " 元");
// 利息差额
BigDecimal difference = dalianBankInterest.subtract(constructionBankInterest);
System.out.println("两个银行利息相差" + difference + " 元");
}
/**
* 计算利息
* @param amount 存款金额
* @param rate 存款利率
* @param years 存款年数
* @param days 存款天数
* @return 利息
*/
private static BigDecimal calculateInterest(BigDecimal amount, BigDecimal rate, int years, int days) {
BigDecimal interest = amount.multiply(rate).multiply(new BigDecimal(years));
BigDecimal dailyRate = rate.divide(new BigDecimal("365"), 8, RoundingMode.HALF_UP);
BigDecimal dailyInterest = amount.multiply(dailyRate).multiply(new BigDecimal(days));
return interest.add(dailyInterest).setScale(6, RoundingMode.HALF_UP);
}
}
```