日期:2014-05-16 浏览次数:20479 次
注:摘录学习《JavaScript 权威指南》—例1.8 用JavaScript计算借贷支出
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>study 1-3 用JavaScript编写借贷支付金额计算器</title>
</head>
<body bgcolor="white">
<form name="loandata">
<table>
<tr><td colspan="3"><b>输入贷款信息:</b></td></tr>
<tr>
<td>1)</td>
<td>贷款总额:</td>
<td><input type="text" name="principal" size="12" onchange="calculate();"></input></td>
</tr>
<tr>
<td>2)</td>
<td>年利率(%):</td>
<td><input type="text" name="interest" size="12" onchange="calculate();"></input></td>
</tr>
<tr>
<td>3)</td>
<td>还款期限(年):</td>
<td><input type="text" name="years" size="12" onchange="calculate();"></input></td>
</tr>
<tr><td colspan="3"><input type="button" value="计算" onclick="calculate();"></td></tr>
<tr><td colspan="3"><b>输入还款信息:</b></td></tr>
<tr>
<td>4)</td>
<td>每月还款金额:</td>
<td><input type="text" name="payment" size="12" ></input></td>
</tr>
<tr>
<td>5)</td>
<td>还款总金额:</td>
<td><input type="text" name="total" size="12" ></input></td>
</tr>
<tr>
<td>6)</td>
<td>还款总利息:</td>
<td><input type="text" name="totalinterest" size="12" ></input></td>
</tr>
</table>
</form>
</body>
<script type="text/javascript">
function calculate(){
//贷款总额
//把年利率从百分比转换成十进制,并转换成月利率。
//还款月数
var principal = document.loandata.principal.value;
var interest = document.loandata.interest.value/100/12;
var payments = document.loandata.years.value*12;
//计算月支付额,使用了相关的数学函数。
var x=Math.pow(1+interest,payments);
var monthly=(principal*x*interest)/(x-1)
//检查结果是否是无穷大的数。如果不是,就显示出结果。
if(!isNaN(monthly)&&
(monthly!=Number.POSITIVE_INFINITY)&&
(monthly!=Number.NEGATIVE_INFINITY)){
document.loandata.payment.value=round(monthly);
document.loandata.total.value=round(monthly*payments);
document.loandata.totalinterest.value=round((monthly*payments)-principal);
}
//否则,用户输入的数据是无效的,因此什么都不显示。
else{
document.loandata.payment.value="";
document.loandata.total.value="";
document.loandata.totalinterest.value="";
}
}
//把数字舍入成两位小数的形式。
function round(x){
return Math.round(x*100)/100;
}
</script>
</html>
?
?
浏览器中效果: