1. java 等额本息还款。这个应该怎么算
import java.math.BigDecimal;
/**
* 银行还款计算
* @author cuiran
* @version TODO
*/
public class BankRefund {
/**
*
* 等额本金还款法【利息少,但前期还的多】
* @param totalMoeny 贷款总额
* @param rate 贷款商业利率
* @param year 贷款年限
*/
public static void principal(int totalMoney,double rate,int year){
/**
* 每月本金
*/
int totalMonth=year*12;
double monthPri=totalMoney/totalMonth;
/**
* 获取月利率
*/
double monRate=resMonthRate(rate);
BigDecimal b = new BigDecimal(monRate);
monRate = b.setScale(6, BigDecimal.ROUND_HALF_UP).doubleValue();
for(int i=1;i<=totalMonth;i++){
double monthRes=monthPri+(totalMoney-monthPri*(i-1))*monRate;
BigDecimal b1 = new BigDecimal(monthRes);
monthRes = b1.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("第"+i+"月,还款为:"+monthRes);
}
}
/**
*
* 等额本息还款【利息多】
* @param totalMoeny 贷款总额
* @param rate 贷款商业利率
* @param year 贷款年限
*/
public static void interest(int totalMoney,double rate,int year){
/**
* 获取月利率
*/
double monRate=resMonthRate(rate);
/**
* 月还款本息
*/
double monInterest=totalMoney*monRate*Math.pow((1+monRate),year*12)/(Math.pow((1+monRate),year*12)-1);
BigDecimal b = new BigDecimal(monInterest);
monInterest = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("月供本息和:"+monInterest);
}
/**
*
* 转换为月利率
* @param rate
* @return
*/
public static double resMonthRate(double rate){
return rate/12;
}
/**
* TODO
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
int totalMoney=430000;
double rate=0.0655;
int year=20;
// BankRefund.interest(totalMoney, rate, year);
BankRefund.principal(totalMoney, rate, year);
}
}
2. java编写程序:要求用户输入贷款的年利率,总金额和年数,程序计算月支付金额和
你也不说计算公式,不知道怎么计算,我去网上找了一个月支付款的计算公式,不知道和你题目的要求是否一样,如果不一样你就改下公式就行。
java代码如下:
publicclassLoan{
publicstaticvoidmain(String[]args){
doublerate;//利率
intyear;//年数
doublemoney;//贷款总额
doublemonthpay;//月付款
Scannersc=newScanner(System.in);
System.out.println("输入月利率:");
rate=sc.nextDouble();
System.out.println("输入年数:");
year=sc.nextInt();
System.out.println("输入贷款总额:");
money=sc.nextDouble();
//计算月付款
monthpay=(money*rate)/Math.abs(1-(1/(1+rate)*year*12));
System.out.println("每月应该还贷款:"+monthpay);
}
}