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);
}
}