Ryan Chong
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
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
ASKER
Hi Mick,
Is that possible to have a Javascript / JSP version of this? A bit syntax difference, right?
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
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
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 :-)
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 :-)
ASKER
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 :-)
Task Done!
I amend the code from this link which posted at the link above.
http://www.mcfedries.com/CreatingAWebPage/mortgage.htm
thks :-)
ASKER
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().toLow erCase().e quals("pos t")) {
pearn = request.getParameter("earn ") == null?"0":request.getParame ter("earn" ).toString ();
ptenor = request.getParameter("teno r") == null?"0":request.getParame ter("tenor ").toStrin g();
ploanamt = request.getParameter("loan ") == null?"0":request.getParame ter("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(ploanam t);
} catch (Exception e) {}
double downpayment = 0.00;
double princ = loanamt - downpayment;
double pmt = Math.floor((princ*intRate) /(1-Math.p ow(1+intRa te,(-1*ten or)))*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"></s cript>
<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.p ow(1+intRa te,(-1*ten or)))*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*t enor)));
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/rightpi c_mt_bg.gi f">
<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"> </td>
<td width="23"> </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"> </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"> </td>
<td width="23"> </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"> </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"> </td>
<td width="23"> </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.gi f" width="315" height="46" border="0" usemap="#Map"></td>
</tr>
<tr>
<td height="62" valign="bottom" background="images/rightpi c_mb_bg.gi f">
<table border="0" cellpadding="0" cellspacing="0" background="images/spacer. gif">
<tr>
<td width="47"> </td>
<td width="23"> </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"> </td>
</tr>
</table>
</form>
<map name="Map">
<area shape="rect" coords="69,10,170,39" href="#" onclick="validate();return false;">
</map>
</body>
</html>
cheers :-)
<%!
public static String formatNumber(double number) {
java.text.DecimalFormat myFormatter = new java.text.DecimalFormat("#
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().toLow
pearn = request.getParameter("earn
ptenor = request.getParameter("teno
ploanamt = request.getParameter("loan
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)
} catch (Exception e) {}
double intRate = (iRate/100) / tenor;
double loanamt = 0;
try {
loanamt = Double.parseDouble(ploanam
} catch (Exception e) {}
double downpayment = 0.00;
double princ = loanamt - downpayment;
double pmt = Math.floor((princ*intRate)
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"+
}
%>
<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"></s
<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)
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,
document.form1.submit();
//alert("xxx");
//calculatorLoan(frm);
//return false;
}
function calculatorLoan(frm) {
var yearearn = 0 + parseFloat(frm.earn.value)
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)
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*t
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"
<td width="346"><img src="images/rightpic_t.gif
</tr>
<tr>
<td width="254"><img src="images/leftpic_mt.jpg
<td width="346" align="left" valign="middle" background="images/rightpi
<table width="315" border="0" cellpadding="0" cellspacing="0" background="images/spacer.
<tr>
<td width="47"><img src="images/spacer.gif" width="47" height="1"></td>
<td width="23"><img src="images/img_bullet.gif
<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"> </td>
<td width="23"> </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"> </td>
<td width="23"><img src="images/img_bullet.gif
<td width="243"><font color="#006699" size="2" face="Arial, Helvetica, sans-serif">Loan
amount:</font></td>
</tr>
<tr>
<td width="47"> </td>
<td width="23"> </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"> </td>
<td width="23"><img src="images/img_bullet.gif
<td width="243"><font color="#006699" size="2" face="Arial, Helvetica, sans-serif">Tenor:</font><
</tr>
<tr>
<td width="47"> </td>
<td width="23"> </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
<td width="346" valign="bottom"><table width="315" border="0" cellspacing="0" cellpadding="0">
<tr>
<td><img src="images/rightpic_mt.gi
</tr>
<tr>
<td height="62" valign="bottom" background="images/rightpi
<table border="0" cellpadding="0" cellspacing="0" background="images/spacer.
<tr>
<td width="47"> </td>
<td width="23"> </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"
<td width="346"><img src="images/rightpic_b.jpg
</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>
<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"> </td>
</tr>
</table>
</form>
<map name="Map">
<area shape="rect" coords="69,10,170,39" href="#" onclick="validate();return
</map>
</body>
</html>
cheers :-)
http://mywebpages.comcast.net/erfarmer201/financial/