Link to home
Start Free TrialLog in
Avatar of Ryan Chong
Ryan ChongFlag for Singapore

asked on

PMT function in Java

Hi,

I manage to use the PMT function in Visual Basic, but not yet in Java, is there any PMT function in Java?

For reference:
http://www.junk.net/temp/homereno/pmt.jpg

If not, can someone provide me the solution? thks
Avatar of Mick Barry
Mick Barry
Flag of Australia image

Avatar of Ryan Chong

ASKER

Hi Mick,

Is that possible to have a Javascript / JSP version of this? A bit syntax difference, right?
You can use that code in your JSP. For Javascript try asking in the Javascript topic.
Happy new year ;)
ASKER CERTIFIED SOLUTION
Avatar of Mick Barry
Mick Barry
Flag of Australia image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Happy new year too, Mick :-)

Ya, saw that link before, now just collecting info, still not get it a try, will feedback to you guy probably tomorrow when working, cheers :-)
Hi Mick,

Task Done!

I amend the code from this link which posted at the link above.

http://www.mcfedries.com/CreatingAWebPage/mortgage.htm 

thks :-)
Oh, and here post the solution in JSP version, you know, may be someday someone will need it:

<%!
      public static String formatNumber(double number) {      
              java.text.DecimalFormat myFormatter = new java.text.DecimalFormat("##,##0.00");
              return myFormatter.format(number);      
      }
      
      public static String ischecked(String v1, String v2, String rtn) {
                  if (v1.equalsIgnoreCase(v2)) {
                        return rtn;                                    
                  }
                  return "";
      }
            
%>

<%
      String pearn = "";
      String ptenor = "";
      String ploanamt = "";
      String ppmt = "";
                  
      if (request.getMethod().toLowerCase().equals("post")) {
            
            pearn = request.getParameter("earn") == null?"0":request.getParameter("earn").toString();
            ptenor = request.getParameter("tenor") == null?"0":request.getParameter("tenor").toString();
            ploanamt = request.getParameter("loan") == null?"0":request.getParameter("loan").toString();
            
            String msgx = "pearn = " + pearn + "\n" +
                          "ptenor = " + ptenor + "\n" +
                          "ploanamt = " + ploanamt + "\n";
                         
            
            double yearearn = 0.00;
            
            try {
                  yearearn = Double.parseDouble(pearn) * 12;
            } catch (Exception e) {}
            
            double iRate = 8.75;
            
            if (yearearn >= 42000) {
                  iRate = 7.75;
            }
            double tenor = 0;
            
            try {
                  tenor = Double.parseDouble(ptenor); // * 12;
            } catch (Exception e) {}
             
             
            double intRate = (iRate/100) / tenor;
            
            double loanamt = 0;
            
            try {
                  loanamt = Double.parseDouble(ploanamt);
            } catch (Exception e) {}
            
            
            double downpayment = 0.00;
            
            double princ = loanamt - downpayment;
            
            double pmt = Math.floor((princ*intRate)/(1-Math.pow(1+intRate,(-1*tenor)))*100)/100;
            
            ppmt = formatNumber(pmt);
            
            String msg = "yearearn = " + yearearn + "\n" +
                          "princ = " + princ + "\n" +
                          "iRate = " + iRate + "\n" +
                          "intRate = " + intRate + "\n" +
                          "tenor = " + tenor + "\n" +
                          "pmt = " + pmt + "\n";
            
            //System.out.println("\n"+msg+"\n");
      }
      
      
      
%>
<html>
<head>
<title>xxx</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>xxx</title>
<meta name="description" content="xxx">
<meta name="keywords" content="xxx">

</head>

<script language="Javascript1.2" src="js/validation.js"></script>

<script language="javascript">
      function validate() {
            var frm = document.form1;
            if (!CheckBlank(frm.earn, "Please tell us how much do you earn per month?")) {return false;}                  
            if (!strIsBlank(frm.earn)) {
                  if (!CheckNumber(frm.earn, "Please tell us how much do you earn per month?")) {return false;}
            }
            
            //Check earn amount
            var earnamt = 0 + parseFloat(frm.earn.value);
            if (earnamt < 2500) {
                  alert("You must earn a minimum of $2,500 per month to apply.");
                  frm.earn.focus();
                  frm.earn.select();
                  return false;
            }
            
            if (!CheckBlank(frm.loan, "Please tell us your loan amount?")) {return false;}                  
            if (!strIsBlank(frm.loan)) {
                  if (!CheckNumber(frm.loan, "Please tell us your loan amount?")) {return false;}
            }
            
            //Check loan amount
            var limitloanamt = 0 + parseFloat(frm.earn.value) * 6;
            if (limitloanamt > 30000) {
                  limitloanamt = 30000
            }
            
            var loanamt = 0 + parseFloat(frm.loan.value);
            if (loanamt > 30000) {
                  alert("You can only apply for loans of up to $30,000.");
                  frm.loan.focus();
                  frm.loan.select();
                  return false;
            } else if (loanamt < 5000) {
                  alert("The minimum loan amount is $5,000.");
                  frm.loan.focus();
                  frm.loan.select();
                  return false;
            } else if (loanamt > limitloanamt)  {
                  alert("You can only apply for loans that are 6 times your monthly salary.");
                  frm.loan.focus();
                  frm.loan.select();
                  return false;
            }
            
            if (!CheckBlankcbo(frm.tenor, "Please select the tenor.")) {return false;}
            document.form1.submit();
            //alert("xxx");
            
            //calculatorLoan(frm);
            //return false;
      }
      
      function calculatorLoan(frm) {
            var yearearn = 0 + parseFloat(frm.earn.value) * 12;
            var iRate = 8.75;
            if (yearearn >= 42000) {
                  iRate = 7.75;
            }
            var tenor = 0 + parseFloat(frm.tenor.value);
            var intRate = (iRate/100) / tenor;
            
            var loanamt = 0 + parseFloat(frm.loan.value);
            var downpayment = 0;
            
            var princ = loanamt - downpayment;
            
            var pmt = Math.floor((princ*intRate)/(1-Math.pow(1+intRate,(-1*tenor)))*100)/100;
            
            var msg = "yearearn = " + yearearn + "\n" +
                          "princ = " + princ + "\n" +
                          "intRate = " + intRate + "\n" +
                          "tenor = " + tenor + "\n" +
                          "pmt = " + pmt + "\n";
            
            //alert(msg);
            
            //alert("x1 = "+Math.pow(1+intRate,(-1*tenor)));
            
            frm.monthinstal.value = roundOff(pmt, 2);
      }
      

</script>

<body leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form name="form1" method="post" action="hrl_calculator.jsp">
  <table width="600" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td><img src="images/top_ban.gif" width="600" height="61"></td>
    </tr>
  </table>
  <table width="600" border="0" cellspacing="0" cellpadding="0">
    <tr>
      <td width="254"><img src="images/leftpic_t.jpg" width="254" height="62"></td>
      <td width="346"><img src="images/rightpic_t.gif" width="315" height="62"></td>
    </tr>
    <tr>
      <td width="254"><img src="images/leftpic_mt.jpg" width="254" height="162"></td>
      <td width="346" align="left" valign="middle" background="images/rightpic_mt_bg.gif">
        <table width="315" border="0" cellpadding="0" cellspacing="0" background="images/spacer.gif">
          <tr>
            <td width="47"><img src="images/spacer.gif" width="47" height="1"></td>
            <td width="23"><img src="images/img_bullet.gif" width="23" height="13"></td>
            <td width="243"><font color="#006699" size="2" face="Arial, Helvetica, sans-serif">How
              much do you earn per month:</font></td>
          </tr>
          <tr>
            <td width="47">&nbsp;</td>
            <td width="23">&nbsp;</td>
            <td width="243"><font color="#006699" size="2" face="Arial, Helvetica, sans-serif">
              <input name="earn" type="text" id="monthly instalment3" style="width:170px;" size="15" maxlength="10" value="<%=pearn%>">
              </font></td>
          </tr>
          <tr>
            <td><img src="images/spacer.gif" width="1" height="5"></td>
            <td><img src="images/spacer.gif" width="1" height="5"></td>
            <td><font color="#006699" size="1" face="Arial, Helvetica, sans-serif">Min:
              S$ 2,500 per month.</font></td>
          </tr>
          <tr>
            <td colspan="3"><img src="images/spacer.gif" width="1" height="3"><img src="images/spacer.gif" width="1" height="3"></td>
          </tr>
          <tr>
            <td width="47">&nbsp;</td>
            <td width="23"><img src="images/img_bullet.gif" width="23" height="13"></td>
            <td width="243"><font color="#006699" size="2" face="Arial, Helvetica, sans-serif">Loan
              amount:</font></td>
          </tr>
          <tr>
            <td width="47">&nbsp;</td>
            <td width="23">&nbsp;</td>
            <td width="243"><font color="#006699" size="2" face="Arial, Helvetica, sans-serif">
              <input name="loan" type="text" id="monthly instalment3" style="width:170px;" size="15" maxlength="10" value="<%=ploanamt%>">
              </font></td>
          </tr>
          <tr>
            <td><img src="images/spacer.gif" width="1" height="5"></td>
            <td><img src="images/spacer.gif" width="1" height="5"></td>
            <td><font color="#006699" size="1" face="Arial, Helvetica, sans-serif">Max:
              S$ 30,000</font></td>
          </tr>
          <tr>
            <td colspan="3"><img src="images/spacer.gif" width="1" height="5"></td>
          </tr>
          <tr>
            <td width="47">&nbsp;</td>
            <td width="23"><img src="images/img_bullet.gif" width="23" height="13"></td>
            <td width="243"><font color="#006699" size="2" face="Arial, Helvetica, sans-serif">Tenor:</font></td>
          </tr>
          <tr>
            <td width="47">&nbsp;</td>
            <td width="23">&nbsp;</td>
            <td><font color="#006699" size="2" face="Arial, Helvetica, sans-serif">
              <select name="tenor" id="select2">
                <option value="">Please select</option>
                <option value="12" <%=ischecked(ptenor, "12", " selected")%>>12</option>
                <option value="24" <%=ischecked(ptenor, "24", " selected")%>>24</option>
                <option value="36" <%=ischecked(ptenor, "36", " selected")%>>36</option>
                <option value="48" <%=ischecked(ptenor, "48", " selected")%>>48</option>
                <option value="60" <%=ischecked(ptenor, "60", " selected")%>>60</option>
              </select>
              </font></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td width="254"><img src="images/leftpic_mb.jpg" width="254" height="108"></td>
      <td width="346" valign="bottom"><table width="315" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td><img src="images/rightpic_mt.gif" width="315" height="46" border="0" usemap="#Map"></td>
          </tr>
          <tr>
            <td height="62" valign="bottom" background="images/rightpic_mb_bg.gif">
              <table border="0" cellpadding="0" cellspacing="0" background="images/spacer.gif">
                <tr>
                  <td width="47">&nbsp;</td>
                  <td width="23">&nbsp;</td>
                  <td width="243"><font color="#006699" size="2" face="Arial, Helvetica, sans-serif">
                    <input name="monthinstal" type="text" id="monthly instalment" style="width:170px;" size="15" onfocus="this.blur()" value="<%=ppmt%>">
                    </font></td>
                </tr>
                <tr>
                  <td colspan="3"><img src="images/spacer.gif" width="1" height="15"></td>
                </tr>
              </table></td>
          </tr>
        </table> </td>
    </tr>
    <tr>
      <td width="254"><img src="images/leftpic_b.jpg" width="254" height="57"></td>
      <td width="346"><img src="images/rightpic_b.jpg" width="346" height="57"></td>
    </tr>
  </table>
  <table width="600" border="0" cellspacing="0" cellpadding="5">
    <tr>
      <td align="left" valign="top"><font size="2" face="Arial, Helvetica, sans-serif"><font size="1">Important:</font></font>
        <table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr align="left" valign="top">
            <td width="3%"><font size="1" face="Arial, Helvetica, sans-serif">1.
              </font></td>
            <td width="97%"><font size="1" face="Arial, Helvetica, sans-serif">The
              monthly repayment is calculated based on approved loan amount. The
              interest is calculated based on a monthly rest. </font></td>
          </tr>
          <tr align="left" valign="top">
            <td width="3%"><font size="1" face="Arial, Helvetica, sans-serif">2.</font></td>
            <td width="97%"><font size="1" face="Arial, Helvetica, sans-serif">
              The interest rate set out in this schedule is based on Standard Flintstone Bank's board rate. </font></td>
          </tr>
          <tr align="left" valign="top">
            <td width="3%"><font size="1" face="Arial, Helvetica, sans-serif">3.</font></td>
            <td width="97%"><font size="1" face="Arial, Helvetica, sans-serif">
              The board rate is subjected to change. If the board rate changes,
              the monthly repayment will change accordingly. </font></td>
          </tr>
          <tr align="left" valign="top">
            <td width="3%"><font size="1" face="Arial, Helvetica, sans-serif">4.
              </font></td>
            <td width="97%"><font size="1" face="Arial, Helvetica, sans-serif">The
              minimum loan amount is $5,000. The maximum loan granted can be up
              to S$30,000 or 6 times your monthly income, whichever is lower over
              a repayment period of 1 to 5 years.</font></td>
          </tr>
          <tr align="left" valign="top">
            <td width="3%"><font size="1" face="Arial, Helvetica, sans-serif">*
              </font></td>
            <td width="97%"><font size="1" face="Arial, Helvetica, sans-serif">To
              qualify for an interest rate of 7.75% p.a, an applicant must earn
              at least S$3,000 gross monthly income. </font></td>
          </tr>
        </table></td>
    </tr>
    <tr>
      <td align="left" valign="top">&nbsp;</td>
    </tr>
  </table>
</form>
<map name="Map">
  <area shape="rect" coords="69,10,170,39" href="#" onclick="validate();return false;">
</map>
</body>
</html>

cheers :-)