我正在尝试创建一个贷款计算器,它会以最多两位小数的数字给我计算的每月付款。我目前正在使用以下公式,但它给了我两个以上的小数位(见下图)。
<script language="JavaScript">
<!--
function showpay() {
if ((document.calc.loan.value == null || document.calc.loan.value.length == 0) ||
(document.calc.months.value == null || document.calc.months.value.length == 0)
||
(document.calc.rate.value == null || document.calc.rate.value.length == 0))
{ document.calc.pay.value = "Incomplete data";
}
else
{
var princ = document.calc.loan.value;
var term = document.calc.months.value;
var intr = document.calc.rate.value / 1200;
document.calc.pay.value = princ * intr / (1 - (Math.pow(1/(1 + intr), term)));
}
// payment = principle * monthly interest/(1 - (1/(1+MonthlyInterest)*Months))
}
// -->
</script>
这是我的贷款计算器的HTML:
<form name=calc method=POST>
<div style="color:white; font-weight:bold; border:4px grey outset; padding:0px; margin:0px;" id="stretchtable">
<table width="100%" border="1" style="border:1px outset grey">
<tr><th bgcolor="black" width=50%><font color=white>Description</font></th>
<th bgcolor="black" width=50%><font color=white>Data Entry</font></th></tr>
<tr><td bgcolor="black">Loan Amount</td><td bgcolor="black" align=center><input
type=text name=loan
size=10 class="dp2"></td></tr>
<tr><td bgcolor="black">Loan Length in Months</td><td bgcolor="black"
align=center><input type=text
name=months size=10></td></tr>
<tr><td bgcolor="black">Interest Rate</td><td bgcolor="black" align=center><input
type=text name=rate
size=10></td></tr>
<tr><td bgcolor="black">Monthly Payment</td><td bgcolor="black"
align=center><em>Calculated</em> <input
type=text name=pay size=10 class="dp2"></td></tr>
<tr><td bgcolor="black"align=center><input type=button onClick='showpay()'
value=Calculate></td><td bgcolor="black" align=center><input type=reset
value=Reset></td></tr>
</table>
</div>
</form>
当显示计算的每月付款时,它会显示在许多小数位。我希望这仅限于2位小数,并将这些小数位舍入到最接近的百分位。我相信这可以通过PHP或JavaScript来实现。
注意:我正在寻找我的问题的直接解决方案,而不是建议/提示。
例如:
如果我的月度计算付款为2.489999
,则新代码会2.49
。
以下是我的贷款计算器的图片:
感谢您的帮助。非常感谢所有帮助。
答案 0 :(得分:1)
在javascript中试试这个
num.toFixed(2),
其中num
是您想要舍入的数字。
以及PHP中的以下内容:
round(num,2)
答案 1 :(得分:0)
在php中
round(2.489999, 2)
在javascript中
2.489999.toFixed(2)
将数字四舍五入到小数点后两位。