9

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

如果单选按钮的值为整数,则下面的代码可以完美运行,但是如果我想在单选按钮上有一个浮点值,则总值将有一个100.0000000679when it should be 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
4

1 回答 1

11

起初,我认为您为我们提供了一个与预期不同的示例。如果您告诉我们有关获取的信息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();
    });
});​
于 2012-03-29T19:10:23.080 回答