十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
import javax.swing.JOptionPane;
创新互联是一家专注于做网站、成都网站制作与策划设计,金川网站建设哪家好?创新互联做网站,专注于网站建设十多年,网设计领域的专业建站公司;建站业务涵盖:金川等地区。金川做网站价格咨询:13518219792
public class Pay {
public static void main(String args[]){
String loanString = JOptionPane.showInputDialog("请输入贷款本金( loanAmout):such as 20000.00") ;
double loanAmount= Double.parseDouble(loanString);
String dateString = JOptionPane.showInputDialog("请输入贷款期(loanDate):between 24-60");
int loanDate = Integer.parseInt(dateString);
String monthRateString = JOptionPane.showInputDialog("请输入月利率 (MonthRate):such as 0.00005");
double monthRate = Double.parseDouble(monthRateString);
double pay_Per_Month = (loanAmount+loanAmount * loanDate * monthRate)/loanDate;
JOptionPane.showMessageDialog(null, pay_Per_Month);
}
}
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);
}
}
截图:题目翻译过来的大概意思和程序代码:译文:编写一个程序,使之能显示同每月按揭贷款还款额以及欠款余额,然后显示还款中有多少是利息还款,有多少是本金还款(即有多少还款是真正用来减少债务的)。假设年利率是7.49%。命名一个常量来代表利率。注意还款按月进行,所以利率只是年利率7.49的1/12。 代码:注:按揭贷款有两种月供还款方式:本金还款和本息还款,题目要求的是按“本息还款”方式进行编程,再程序中我把两种还款方式都写了出来,关键地方有注释!
import java.text.NumberFormat;
import java.util.Scanner;
public class Repay {
final double NLL=0.0749; //年利率
final double MLL=NLL/12; //月利率
final int MONTH=12; //付款次数
int month=1;
public static void main(String[] args){
Repay rp=new Repay();
rp.payback();
}
public void payback(){
System.out.println("请输入借款金额");
//获得贷款数额
Scanner sc=new Scanner(System.in);
double debt=sc.nextDouble();
NumberFormat fn=NumberFormat.getInstance();
fn.setMaximumFractionDigits(2);
String nll=fn.format(NLL*100)+"%";
String mll=fn.format(MLL*100)+"%";
String debt_fn=fn.format(debt);
System.out.println("请选择还款方式:输入1选择等额本金还款,输入2选择等额本息还款");
int mode=sc.nextInt();
//等额本金还款
if(mode==1){
System.out.println("您总共借款"+debt_fn+";还款方式:等额本金还款;还款时间:1年"+";年利率是:"+nll+";月利率"+mll);
System.out.println("分期还款明细");
double monthPincipal=debt/12; //每月应还本金
debt=monthPincipal*12;
double accrualM; //每月还款利息
double tm; //每月还款金额
//分期还款明细
while(debt=1){
accrualM=debt*MLL;
tm=monthPincipal+accrualM;
debt=debt-monthPincipal;
if(debt1){
debt=0;
}
//把小数位数格式化成2位
String tm_fn=fn.format(tm);
String monthPincipal_fn=fn.format(monthPincipal);
String accrualM_fn=fn.format(accrualM);
String debt_fn2=fn.format(debt);
System.out.println("第"+month+"月 还款金额:"+tm_fn+" 本月应还本金:"+monthPincipal_fn+" 本月还款利息:"+accrualM_fn+" 剩余本金:"+debt_fn2);
month++;
}
}
//等额本息还款
if(mode==2){
System.out.println("您总共借款"+debt_fn+";还款方式:等额本息还款;还款时间:1年"+";年利率是:"+nll+";月利率"+mll);
//等额本息还款的月还款数公式
double X=debt*MLL*(Math.pow((1+MLL), MONTH))/(Math.pow((1+MLL), MONTH)-1);
String X_fn=fn.format(X); //格式化小数位数
System.out.println("您的月还款额为:"+X_fn);
//分期还款明细
double lixiM,benjinM; //月利息,月本金
System.out.println("分期还款明细");
while(debt=1){
lixiM=debt*MLL;
benjinM=X-lixiM;
debt=debt-benjinM;
if(debt1){
debt=0;
}
//输出
String lixiM_fn=fn.format(lixiM);
String benjinM_fn=fn.format(benjinM);
String debt_fn3=fn.format(debt);
System.out.println("第"+month+"月 还款金额:"+X_fn+" 本月应还本金(即减少债务的钱):"+benjinM_fn+" 本月还款利息:"+lixiM_fn+" 剩余本金:"+debt_fn3);
month++;
}
}
}
}