Подтвердить что ты не робот

Не может добавить два десятичных числа, используя 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

4b9b3361

Ответ 1

Используйте 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
});

Ответ 2

вам нужно использовать 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/

Ответ 3

Используйте parseFloat вместо parseInt и проверьте.

Ответ 4

Целочисленное арифметическое округляет. Вместо этого используйте parseFloat.

Ответ 5

Используйте 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);