2010-12-10 25 views
6

Duplicar posibles:
JavaScript: formatting number with exactly two decimalsTratando de formato de número de lugares decimales 2 jQuery

conseguir un poco confuso, el uso de variables y ahora no puede parecer a conseguir cálculo para trabajar en absoluto !?

$("#discount").change(function(){ 
      var list = $("#list").val(); 
      var discount = $("#discount").val(); 
      var price = $("#price"); 
      var temp = discount * list; 
      var temp1 = list - temp; 
      var total = parseFloat($(this).temp1()).toFixed(2); 

      price.val(total);  
}); 

Respuesta

20

$(this).temp1() parece particularmente fuera de lugar, creo que sólo la intención de utilizar la variable temp1. Desde ya es un número, no es necesario utilizar parseFloat en él, ya sea:

$("#discount").change(function() { 
    var list = $("#list").val(); 
    var discount = $("#discount").val(); 
    var price = $("#price"); 
    var temp = discount * list; 
    var temp1 = list - temp; 
    var total = temp1.toFixed(2); 

    price.val(total); 
}); 
3

yo sugeriría que para convertir cadenas al número primero antes de cálculo. Por ejemplo,

var list = parseFloat($("#list").val()); 
var discount = parseFloat($("#discount").val()); 
var price = $("#price"); 
var total = list - (discount * list); 
price.val(total.toFixed(2)); 

También, si un descuento está en porcentaje (por ejemplo, digamos 25), entonces usted tiene que dividir por 100, es decir list - (discount/100 * list)

Por cierto, consulte este SO hilo donde la gente había advertido contra el uso toFixed : How to format a float in javascript?

+1

Debe ser total.a fijo (2) no total.Arreglado (2) – JasonH

Cuestiones relacionadas