2014-10-31 64 views
0

我试图添加价值标签几个选项,但我得到了一些奇怪的结果。 我想知道某些数字不能很好的帮助。 这里,我离开的链接,例如jsfiddle.net http://jsfiddle.net/pgy74r1k/来自多个选择的总和值总共给出了奇怪的结果

JavaScript函数:

sumValues('#priceList', '#totalPrice'); 
function sumValues(list,total){ 
    var allListElements = $("select"); 
    var sum = 0; 
    $(list).find(allListElements).each(function() { 
    sum += Number($('option:selected', this).attr('price')); 
    }); 
    $(total).empty(); 
    $(total).append(sum+' €'); 

} 

HTML代码:

<div id="priceList">  
    <select class="participant" name="price1" style="width: 100%" onchange="sumValues('#priceList', '#totalPrice')"> 
     <option value="0" price="0"> 0€ </option> 
     <option value="1" price="10.62" selected="selected"> 10.62€ </option> 
    </select> 
    <select class="participant" name="price2" 
style="width: 100%" onchange="sumValues('#priceList', '#totalPrice')"> 
     <option value="0" price="0"> 0€ </option> 
     <option value="1" price="13" selected="selected"> 13€ </option> 
    </select> 
</div>  
<strong id="totalPrice"></strong> 

在此先感谢。

+1

如果您尝试直接运行'13 + 10.62',您会看到奇怪的结果与您的HTML或DOM脚本无关。你的问题纯粹是由浮点运算如何工作造成的,这直接在[浮点运算失败?]中解决(http://stackoverflow.com/questions/588004/is-floating-point-math-broken) – apsillers 2014-10-31 16:47:20

回答

0

您可以使用toFixed()方法:

$(total).append(sum.toFixed(2)+' €'); 

编辑:还有不知道你叫一个奇怪的结果?