如何舍入parseFloat导致Jquery / Javascript?

时间:2012-03-29 17:31:20

标签: javascript jquery rounding parseint parsefloat

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

如果单选按钮值是一个整数,下面的代码可以正常工作,但是如果我想在单选按钮上有一个浮点值,那么当它应该为{{1时,总值将为100.0000000679 }}。任何提示将非常感谢。提前谢谢。

100

HTML代码:

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();
    });
});

1 个答案:

答案 0 :(得分:11)

起初我认为你为我们提供了一个与预期不同的例子。如果您告诉我们一些关于获取100.0000000679的内容,并且您的代码中只有1.6666666666666666666666666666667的值,则表示存在错误:)

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

请参阅example on 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();
    });
});​