不能使用jQuery添加两个十进制数

时间:2012-04-03 05:47:43

标签: javascript jquery decimal

我正在尝试添加两个十进制值,但返回的总和是纯整数。怎么了?我找不到它。欢迎任何帮助。

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

5 个答案:

答案 0 :(得分:30)

使用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 :(得分: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/

答案 2 :(得分:1)

使用parseFloat而不是parseInt并检查。

答案 3 :(得分:1)

整数算术向下舍入。请改用parseFloat

答案 4 :(得分: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);