【问题标题】:How to Make Input Round to the Nearest 2 Decimal Places如何使输入四舍五入到最近的 2 个小数位
【发布时间】:2014-05-24 15:34:00
【问题描述】:

我正在尝试创建一个贷款计算器,它将以最多两位小数的数字为我提供计算出的每月还款额。我目前正在使用以下公式,但它给了我两个以上的小数位(见下图。):

<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

这是我的贷款计算器的样子:

感谢您的帮助。非常感谢所有帮助。

【问题讨论】:

  • payment = payment.toFixed(2)
  • Math.round(i * 100) / 100; toFixed() 也将数字四舍五入,所以更好

标签: javascript php input decimal calculator


【解决方案1】:

用javascript试试这个

num.toFixed(2),

其中num 是您要四舍五入的数字。

以及PHP中的以下一个:

round(num,2)

【讨论】:

  • 在 js 代码中只是简单的 num(princ * intr / (1 - (Math.pow(1/(1 + intr), term)))).toFixed(2)
  • 我已将我的代码更新为document.calc.pay.value = num(princ * intr / (1 - (Math.pow(1/(1 + intr), term)))).toFixed(2),现在当点击计算按钮时,计算的输入保持空白。
【解决方案2】:

在php中

 round(2.489999, 2)

在 JavaScript 中

 2.489999.toFixed(2)

将数字四舍五入到小数点后 2 位。

【讨论】:

  • 如何将其添加到我的计算器中?
  • @Kelsey:我猜,document.calc.pay.value = (your formula).toFixed(2)
  • 它有效,谢谢。我可以交换你的赞成票吗?
猜你喜欢
  • 1970-01-01
  • 2020-04-24
  • 1970-01-01
  • 2012-01-03
  • 1970-01-01
  • 2017-05-22
  • 1970-01-01
  • 2018-09-08
相关资源
最近更新 更多