2012-04-03 21 views
11

Estoy tratando de agregar dos valores decimales, pero la suma devuelta es puramente entera. ¿Qué está mal? No puedo encontrarlo Cualquier ayuda será bienvenida.no se pueden agregar dos números decimales usando 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 
}); 

Con el código que estoy recibiendo solamente 91 y no 91.96

+0

parseInt() mata su valor de coma – Neysor

+0

gracias problema resuelto ... –

Respuesta

26

Uso parseFloat() en lugar de 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

Utilice parseFloat en lugar de parseInt y marque.

1

Entero arithmatic redondea hacia abajo. Use parseFloat en su lugar.

1

Uso parseFloat() en lugar de parseInt()

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

Pero, puesto que desea restringir a dos cifras decimales estrictamente

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

que tienen que utilizar parseFloat En lugar de 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 
}); 

Ver demo: http://jsfiddle.net/aDYhX/1/

Cuestiones relacionadas