JavaScript显示价格两位小数

4

我有一个表单,其中有5个字段供用户输入他们想为5个单独的项目支付多少。然后我让它自动计算总数。由于这个总数要传递到支付网关,所以我需要强制将其四舍五入到2位小数。

有人能告诉我如何更改代码来实现这一点吗?我是一个新手。

这是我目前的代码:

<script>
    function calculatepay(pay) {
var one = document.getElementById(pay + 'Student1Total').value;
var two = document.getElementById(pay + 'Student2Total').value;
var three = document.getElementById(pay + 'Student3Total').value;
var four = document.getElementById(pay + 'Student4Total').value;
var five = document.getElementById(pay + 'Student5Total').value;

var payTotal = document.getElementById(pay + 'payTotal');
payTotal.value = Number(one) + Number(two) + Number(three) + Number(four) + Number(five) ;
    calculateTotal();
}


</script>


<input type="text" id="pay1Student1Total" name="data1" onKeyUp="calculatepay('pay1');" /><br />
<input type="text" id="pay1Student2Total" name="data2" onKeyUp="calculatepay('pay1');" /><br />
<input type="text" id="pay1Student3Total" name="data3" onKeyUp="calculatepay('pay1');" /><br />
<input type="text" id="pay1Student4Total" name="data4" onKeyUp="calculatepay('pay1');" /><br />
<input type="text" id="pay1Student5Total" name="data5" onKeyUp="calculatepay('pay1');" /><br /><br /><br />
Total: 
<input type="text" id="pay1payTotal" onKeyUp="calculateTotal();" value="0"/><br /><br />

1
可能是重复的问题:JavaScript:将数字格式化为恰好两位小数 - Álvaro González
我的回答解决了您的问题吗?如果是的话,您能否在旁边切换检查按钮?这不会有任何损害,我保证! - tjons
5个回答

3
你可以使用 JavaScript 中的 toFixed(2) 函数将数字转换为固定值。
它的用法如下:
payTotal.value.toFixed(2)

如果输入值为1,它将显示为1.00。

当我对代码进行了更改后,它没有起作用。我认为我可能添加到了错误的位置。在代码中我应该添加在哪里? - user3062396

3
您可以使用 .toFixed() 方法:
var x = 5.1232;
console.log(x.toFixed(2));

1
使用此代码:toFixed(2); 可以将数字四舍五入到小数点后两位。

0
var x = 5.1232; console.log(Number(x.toFixed(2)));

1
你的回答可以通过提供更多支持性信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人能够确认你的回答是否正确。你可以在帮助中心找到关于如何撰写好回答的更多信息。 - Community

-1
你可以使用 Math.round(num * 100) / 100

我也不确定如何使用这个方法。我尝试添加了它,但没有起作用。在代码的哪里添加这个呢?谢谢。 - user3062396

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接