gpt4 book ai didi

javascript - parseFloat 舍入

转载 作者:IT王子 更新时间:2023-10-29 03:07:45 28 4
gpt4 key购买 nike

我有自动将输入字段加在一起的 javascript 函数,但是添加像 1.35 + 1.35 + 1.35 这样的数字会得到 4.050000000000001 的输出,这只是一个例子。如何将总数四舍五入到小数点后第二位而不是那个长字符串?

输入字段将不仅仅是 1.35 示例,因此我需要总计在小数点后永远不会超过 2 点。这是完整的工作代码:

<html>
<head>
<script type="text/javascript">
function Calc(className){
var elements = document.getElementsByClassName(className);
var total = 0;

for(var i = 0; i < elements.length; ++i){
total += parseFloat(elements[i].value);
}

document.form0.total.value = total;
}

function addone(field) {
field.value = Number(field.value) + 1;
Calc('add');
}
</script>
</head>
<body>
<form name="form0" id="form0">
1: <input type="text" name="box1" id="box1" class="add" value="0" onKeyUp="Calc('add')" onChange="updatesum()" onClick="this.focus();this.select();" />
<input type="button" value=" + " onclick="addone(box1);">
<br />

2: <input type="text" name="box2" id="box2" class="add" value="0" onKeyUp="Calc('add')" onClick="this.focus();this.select();" />
<input type="button" value=" + " onclick="addone(box2);">
<br />

<br />
Total: <input readonly style="border:0px; font-size:14; color:red;" id="total" name="total">
<br />
</form>
</body></html>

一些我已经尝试过的东西,它们应该可以工作,但我显然没有正确地实现它们:

for(var i = 0; i < elements.length; ++i){
total += parseFloat(elements[i].value.toString().match(/^\d+(?:\.\d{0,2})?/));

var str = total.toFixed(2);

for(var i = 0; i < elements.length; ++i){
total += parseFloat(elements[i].value * 100) / 100).toFixed(2)

Math.floor 也没有运气

最佳答案

使用toFixed() 使用传统的舍入方法将num 舍入为2 个小数位。它将 4.050000000000001 舍入为 4.05。

num.toFixed(2);

您可能更喜欢使用 toPrecision(),它将去除任何结果尾随零。

Example :

1.35+1.35+1.35 => 4.050000000000001
(1.35+1.35+1.35).toFixed(2) => 4.05
(1.35+1.35+1.35).toPrecision(3) => 4.05

// or...
(1.35+1.35+1.35).toFixed(4) => 4.0500
(1.35+1.35+1.35).toPrecision(4) => 4.05

引用:JavaScript Number Format - Decimal Precision

关于javascript - parseFloat 舍入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4640404/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com