如何在Jquery/Javascript中四舍五入parseFloat结果

How to round off parseFloat results in Jquery/Javascript?

本文关键字:四舍五入 parseFloat 结果 Javascript Jquery      更新时间:2023-09-26

如何将文本字段中的值四舍五入并得到parseFloat结果?此应用程序基本上会在单击时汇总所有单选按钮的值,并在文本框中显示该值。

如果单选按钮的值是整数,则下面的代码可以很好地工作,但是,如果我想在单选按钮上有一个浮点值,则总值将有一个100.0000000679,而它应该是100。任何提示都将不胜感激。提前谢谢。

function calcscore(){
  var score = 0;
  $(".calc:checked").each(function(){
    score+=parseFloat($(this).val(),10);
  });
  $("input[name=openingsum]").val(score);
}
$().ready(function(){
    $(".calc").change(function(){
        calcscore();
    });
});

HTML代码:

<input class="calc" name="v2" type="radio" onclick="ver2(this);" value="1.6666666666666666666666666666667" />Yes
<input class="calc" name="v2" type="radio" onclick="ver2(this);" value="0" />No

起初,我认为您为我们提供了一个与预期不同的示例。如果你告诉我们一些关于获得100.0000000679的信息,并且你的代码中只有1.6666666666666666666666666666667的值,那么就有问题了:)

所以我希望你的问题只是绕过正确的方法。为此,您可以使用.toFixed()

请参阅jsfiddle 上的示例

HTML:

<input class="calc" name="v1" type="radio" onclick="ver2(this);" value="1.6666666666666666666666666666667" />Yes
<input class="calc" name="v1" type="radio" onclick="ver2(this);" value="0" />No
<br>
<input class="calc" name="v2" type="radio" onclick="ver2(this);" value="1.6666666666666666666666666666667" />Yes
<input class="calc" name="v2" type="radio" onclick="ver2(this);" value="0" />No
<br>
<input class="calc" name="v3" type="radio" onclick="ver2(this);" value="1.6666666666666666666666666666667" />Yes
<input class="calc" name="v3" type="radio" onclick="ver2(this);" value="0" />No
<br>
<input type="text" name="openingsum">​

JAVASCRIPT:

function calcscore(){
  var score = 0;
  $(".calc:checked").each(function(){
    score+=parseFloat($(this).val(),10);
  });
  score = score.toFixed(2);
  $("input[name=openingsum]").val(score);
}
$().ready(function(){
    $(".calc").change(function(){
        calcscore();
    });
});​