2012-04-03 6 views
11

hinzufügen Ich versuche, zwei Dezimalzahlen hinzuzufügen, aber die zurückgegebene Summe ist reine Ganzzahl. Was ist falsch? Ich kann es nicht finden. Jede Hilfe ist willkommen.kann keine zwei Dezimalzahlen mit 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 
}); 

Mit dem Code, den ich immer bin nur 91 und nicht 91.96

+0

parseInt() tötet Ihren Kommawert – Neysor

+0

Danke Problem gelöst ... –

Antwort

26

Verwenden parseFloat() statt 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

Verwenden Sie parseFloat anstelle von parseInt und überprüfen Sie.

1

Integer arithmatic rundet ab. Verwenden Sie stattdessen .

1

Verwenden parseFloat() statt parseInt()

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

Aber, da Sie wollen auf zwei Dezimalstellen beschränken streng

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

Sie haben parseFloat zu verwenden statt 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 
}); 

Demo prüfen: http://jsfiddle.net/aDYhX/1/