| 
 | 
 
 
看得懂嗎!還真的有些複雜噢! 
 
參考一下就好!!... 共分成二個部份 
 
////////////////////////////////////////////////  
 
1.選取程式碼:javascript放在網頁 部份- <script language="javascript">
 
  
 
 
- function showMenuIndicator()
 
  
- {
 
  
- if (!document.images) return;
 
  
- var i;
 
  
- for (i = 0; i < document.images.length; i++)
 
  
- {
 
  
- if (document.images.name)
 
  
-   if (location.href.indexOf("/" + document.images.name + ".") >= 0)
 
  
-   document.images.src = "/images/menu/menuindicator.gif";
 
  
- }
 
  
- }
 
  
- function getCtrlVal(ctrl)
 
  
- {
 
  
- if (ctrl.value != null)
 
  
- {
 
  
-   return ctrl.value;
 
  
- }
 
  
- else if (ctrl.selectedIndex != null)
 
  
- {
 
  
-   if (ctrl.selectedIndex >= 0)
 
  
-    return ctrl.options[ctrl.selectedIndex].value;
 
  
- }
 
  
- else if (ctrl.length != null)
 
  
- {
 
  
-   var i;
 
  
-   for (i = 0; i < ctrl.length; i++)
 
  
-   {
 
  
-    if (ctrl.checked) return ctrl.value;
 
  
-   }
 
  
- }
 
  
- return null;
 
  
- }
 
  
 
 
- function setCtrlVal(ctrl,val)
 
  
- {
 
  
- if (ctrl.value != null)
 
  
- {
 
  
-   ctrl.value = val;
 
  
- }
 
  
- else if (ctrl.selectedIndex != null)
 
  
- {
 
  
-   var i;
 
  
-   for (i = 0; i < ctrl.length; i++)
 
  
-   {
 
  
-    if (ctrl.options.value == val)
 
  
-    {
 
  
-     ctrl.selectedIndex = i;
 
  
-     break;
 
  
-    }
 
  
-   }   
 
  
- }
 
  
- else if (ctrl.length != null)
 
  
- {
 
  
-   var i;
 
  
-   for (i = 0; i < ctrl.length; i++)
 
  
-   {
 
  
-    if (ctrl.value == val)
 
  
-    {
 
  
-     ctrl.checked = true;
 
  
-     break;
 
  
-    }
 
  
-   }
 
  
- }
 
  
- }
 
  
 
 
- function getHrefParam(paramName)
 
  
- {
 
  
- var i = location.href.indexOf("?" + paramName + "=");
 
  
- if (i < 0) i = location.href.indexOf("&" + paramName + "=");
 
  
- if (i < 0) return null;
 
  
 
 
- var j = location.href.indexOf("&", i + 1);
 
  
- if (j < 0) j = location.href.length;
 
  
- return unescape(location.href.substring(i + 2 + paramName.length, j));
 
  
- }
 
  
 
 
- function zeroBlanks(formname)
 
  
- {
 
  
- var i, ctrl;
 
  
- for (i = 0; i < formname.elements.length; i++)
 
  
- {
 
  
-   ctrl = formname.elements;
 
  
-   if (ctrl.type == "text")
 
  
-   {
 
  
-    if (makeNumeric(ctrl.value) == "")
 
  
-     ctrl.value = "0";
 
  
-   }
 
  
- }
 
  
- }
 
  
 
 
- function filterChars(s, charList)
 
  
- {
 
  
- var s1 = "" + s; // force s1 to be a string data type
 
  
- var i;
 
  
- for (i = 0; i < s1.length; )
 
  
- {
 
  
-   if (charList.indexOf(s1.charAt(i)) < 0)
 
  
-    s1 = s1.substring(0,i) + s1.substring(i+1, s1.length);
 
  
-   else
 
  
-    i++;
 
  
- }
 
  
- return s1;
 
  
- }
 
  
 
 
- function makeNumeric(s)
 
  
- {
 
  
- return filterChars(s, "1234567890.-");
 
  
- }
 
  
 
 
- function numval(val,digits,minval,maxval)
 
  
- {
 
  
- val = makeNumeric(val);
 
  
- if (val == "" || isNaN(val)) val = 0;
 
  
- val = parseFloat(val);
 
  
- if (digits != null)
 
  
- {
 
  
-   var dec = Math.pow(10,digits);
 
  
-   val = (Math.round(val * dec))/dec;
 
  
- }
 
  
- if (minval != null && val < minval) val = minval;
 
  
- if (maxval != null && val > maxval) val = maxval;
 
  
- return parseFloat(val);
 
  
- }
 
  
 
 
- function formatNumber(val,digits,minval,maxval)
 
  
- {
 
  
- var sval = "" + numval(val,digits,minval,maxval);
 
  
- var i;
 
  
- var iDecpt = sval.indexOf(".");
 
  
- if (iDecpt < 0) iDecpt = sval.length;
 
  
- if (digits != null && digits > 0)
 
  
- {
 
  
-   if (iDecpt == sval.length)
 
  
-    sval = sval + ".";
 
  
-   var places = sval.length - sval.indexOf(".") - 1;
 
  
-   for (i = 0; i < digits - places; i++)
 
  
-    sval = sval + "0";
 
  
- }
 
  
- var firstNumchar = 0;
 
  
- if (sval.charAt(0) == "-") firstNumchar = 1;
 
  
- for (i = iDecpt - 3; i > firstNumchar; i-= 3)
 
  
-   sval = sval.substring(0, i) + "," + sval.substring(i);
 
  
 
 
- return sval;
 
  
- }
 
  
 
 
- function presentValue(fv,r,y)
 
  
- {
 
  
- return fv/Math.pow(1+r,y);
 
  
- }
 
  
 
 
- function futureValue(p,r,y)
 
  
- {
 
  
- return p*Math.pow(1+r,y);
 
  
- }
 
  
 
 
- function returnRate(pv,fv,y)
 
  
- {
 
  
- return Math.pow(fv/pv,1.0/y) - 1.0;
 
  
- }
 
  
 
 
- function geomSeries(z,m,n)
 
  
- {
 
  
- var amt;
 
  
- if (z == 1.0) amt = n + 1;
 
  
- else amt = (Math.pow(z,n + 1) - 1)/(z - 1);
 
  
- if (m >= 1) amt -= geomSeries(z,0,m-1);
 
  
- return amt;
 
  
- }
 
  
 
 
- function basicInvestment(p,r,y,c)
 
  
- {
 
  
- if (c == null) c = 0;
 
  
 
 
- return futureValue(p,r,y) + c*geomSeries(1+r,1,y);
 
  
- }
 
  
 
 
- function annuityPayout(p,r,y)
 
  
- {
 
  
- return futureValue(p,r,y-1)/geomSeries(1+r,0,y-1);
 
  
- }
 
  
 
 
- function mortgagePayment(p,r,y)
 
  
- {
 
  
- return futureValue(p,r,y)/geomSeries(1+r,0,y-1);
 
  
- }
 
  
 
 
- function randN(m,s)
 
  
- {
 
  
- return s*Math.sqrt(-2*Math.log(Math.random()))*Math.cos(2*Math.PI*Math.random()) + m;
 
  
- }
 
  
 
 
- function logNmean(m,s)
 
  
- {
 
  
- return Math.log(m) - (Math.pow(logNsigma(m,s),2)/2);
 
  
- }
 
  
 
 
- function logNsigma(m,s)
 
  
- {
 
  
- return Math.sqrt(Math.log(Math.pow(s/m,2) + 1));
 
  
- }
 
  
 
 
- function gmEst(r_am,s)
 
  
- {
 
  
- return Math.sqrt(Math.pow(1 + r_am, 2) - Math.pow(s,2)) - 1;
 
  
- }
 
  
 
 
- function numOrder(n, m)
 
  
- {
 
  
- return n - m;
 
  
- }
 
  
- //-->
 
  
 
 
 
 
- </script>
 
  複製代碼 
---------------------------------------------------- 
 
////////////////////////////////////////////////  
 
2.選取程式碼: 部份 
------------------------------------------------------ <FORM NAME="mainform" ACTION="(script removed)doCalc()" METHOD="OST">
 
  
- <CENTER>
 
  
- <TABLE BGCOLOR="#f08080" BORDER="0" CELLPADDING="1" CELLSPACING="0"><TR><TD>
 
  
- <TABLE WIDTH="500" BORDER="0" CELLSPACING="0" BGCOLOR="#ffa500">
 
  
- <TR><TD COLSPAN=2>
 
  
- <TABLE WIDTH="100%" BORDER=0 CELLSPACING=0>
 
  
- <TR BGCOLOR="#008b8b"><TD ALIGN="center"><FONT COLOR="#FFFFFF"><B>輸入</B></FONT></TD></TR>
 
  
- </TABLE>
 
  
- </TD>
 
  
- </TR>
 
  
- <TR><TD width="207">本金:</TD>
 
  
- <TD width="289">$ <INPUT TYPE="TEXT" NAME="p" SIZE="10" VALUE="" onChange="value=formatNumber(value,2,0)">
 
  
- </TD></TR>
 
  
- <TR><TD width="207">利率:</TD>
 
  
- <TD width="289">  <INPUT TYPE="TEXT" NAME="r" SIZE="8" VALUE="5" onChange="value=numval(value,null,0)"> %
 
  
- </TD></TR>
 
  
- <TR><TD width="207">期數:</TD>
 
  
- <TD width="289">  <INPUT TYPE="TEXT" NAME="y" SIZE="8" VALUE="1" onChange="value=numval(value,null,0)">
 
  
- </TD></TR>
 
  
- <TR><TD COLSPAN=2 ALIGN="CENTER"> <BR>
 
  
- <INPUT TYPE="BUTTON" VALUE="計算" onClick="doCalc()"></TD></TR>
 
  
- <TR><TD COLSPAN=2>
 
  
- <TABLE WIDTH="100%" BORDER=0 CELLSPACING=0>
 
  
- <TR BGCOLOR="#008b8b"><TD ALIGN="center"><FONT COLOR="#FFFFFF"><B>未來值</B></FONT></TD></TR> </TABLE>
 
  
- </TD></TR>
 
  
 
 
- <TR><TD COLSPAN=2>複利周期: P(1 + r/n)<SUP>Yn</SUP>   n 等於…… </TD></TR>
 
  
 
 
- <TR><TD width="207">    1(每年)</TD>
 
  
- <TD width="289">$ <INPUT TYPE="TEXT" NAME="fv_1" SIZE="10" VALUE="" readonly></TD></TR>
 
  
- <TR><TD width="207">    
 
  
- <INPUT TYPE="TEXT" NAME="n" SIZE="4" VALUE="4" onChange="value=numval(value,0,1)">(每季)</TD>
 
  
- <TD width="289">$ <INPUT TYPE="TEXT" NAME="fv_n" SIZE="10" VALUE="" readonly>
 
  
- </TD></TR>
 
  
- <TR><TD width="207">    12(每月)</TD>
 
  
- <TD width="289">$ <INPUT TYPE="TEXT" NAME="fv_12" SIZE="10" VALUE="" readonly></TD></TR>
 
  
- <TR><TD width="207">    365(每日)</TD>
 
  
- <TD width="289">$ <INPUT TYPE="TEXT" NAME="fv_365" SIZE="10" VALUE="" readonly></TD></TR>
 
  
 
 
- <TR><TD width="207">    365 x 24(每小時)</TD>
 
  
- <TD width="289">$ <INPUT TYPE="TEXT" NAME="fv_hourly" SIZE="10" VALUE="" readonly></TD></TR>
 
  
- <TR><TD COLSPAN=2>持續複利:</TD></TR>
 
  
- <TR><TD width="207">    Pe<SUP>Yr</SUP></TD>
 
  
- <TD width="289">$ <INPUT TYPE="TEXT" NAME="fv_e" SIZE="10" VALUE="" readonly></TD></TR>
 
  
- </TABLE></TD></TR></TABLE></CENTER></FORM>
 
  
- <SCRIPT LANGUAGE="JavaScript">
 
  
- <!--
 
  
- showMenuIndicator();
 
  
 
 
- function doCalc()
 
  
- {
 
  
- var p = numval(document.mainform.p.value);
 
  
- var r = numval(document.mainform.r.value)/100;
 
  
- var y = numval(document.mainform.y.value);
 
  
- var n = numval(document.mainform.n.value);
 
  
 
 
- document.mainform.fv_1.value = formatNumber(futureValue(p, r, y), 2);
 
  
- document.mainform.fv_n.value = formatNumber(futureValue(p, r/n, y*n), 2);
 
  
- document.mainform.fv_12.value = formatNumber(futureValue(p, r/12, y*12), 2);
 
  
- document.mainform.fv_365.value = formatNumber(futureValue(p, r/365, y*365), 2);
 
  
- document.mainform.fv_hourly.value = formatNumber(futureValue(p, r/8760, y*8760), 2);
 
  
- document.mainform.fv_e.value = formatNumber(p*Math.exp(r*y), 2);
 
  
- }
 
  
- //-->
 
  
- </SCRIPT>
 
  複製代碼 
範例: 複利計算參考 
 
http://www.wellsli.com/interest_rate.htm |   
 
 
 
 |