日期:2014-05-16  浏览次数:20407 次

用JavaScript 计算借贷款支出

注:摘录学习《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>

?

?

浏览器中效果: