2012-04-03 50 views
11

我想添加兩個十進制值,但返回的總和是純整數。哪裏不對?我找不到它。任何幫助將受到歡迎。不能使用jQuery添加兩個十進制數

jQuery(".delivery-method #ship_select").change(function(){ 
    var cost = jQuery(this).val(); 
    jQuery("#delivery_cost").val(cost); //returns 20.00 
    var tot = parseInt(cost) + parseInt(total); //total returns 71.96 
}); 

隨着我得到僅91,而不是91.96

+0

parseInt()殺死你的逗號值 – Neysor 2012-04-03 05:51:36

+0

謝謝你解決的問題... – 2012-04-03 06:08:22

回答

26

使用parseFloat(),而不是parseInt()的代碼。

jQuery(".delivery-method #ship_select").change(function(){ 
    var cost = jQuery(this).val(); 
    jQuery("#delivery_cost").val(cost); //returns 20.00 
    var tot = parseFloat(cost) + parseFloat(total); //total returns 71.96 
}); 
1

使用parseFloat代替parseInt並檢查。

1

整數算術舍入。改爲使用parseFloat。的

1

使用parseFloat()代替parseInt()

var tot = parseFloat(cost) + parseFloat(total); 

不過,既然你要限制到小數點後兩位嚴格

function roundNumber(num, dec) { 
    var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec); 
    return result; 
} 

var tot = roundNumber((cost+total), 2); 
7

,你必須使用parseFloat代替parseInt

jQuery(".delivery-method #ship_select").change(function(){ 
     var cost = jQuery(this).val(); 
     jQuery("#delivery_cost").val(cost); //returns 20.00 
    var tot = parseFloat(cost) + parseFloat(total); //total returns 71.96 
}); 

查看演示http://jsfiddle.net/aDYhX/1/