2010-12-10 20 views
6

Olası Çoğalt:
JavaScript: formatting number with exactly two decimals2 ondalık basamağa numarasını biçimlendirmek için çalışılıyor jQuery

biraz değişkenleri kullanarak muddled ve şimdi can not hiç çalışmak hesaplama almak gibi Başlarken !?

$("#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);  
}); 

cevap

20

$(this).temp1() Ben sadece temp1 değişkeni kullanmak gerekiyordu düşünüyorum, özellikle yersiz görünüyor. Zaten bir sayı olduğundan, bunu ya üzerinde parseFloat kullanmaya gerek yoktur:

$("#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

Ben hesaplamadan önce ilk numaraya dizeleri dönüştürmek için size öneririm. indirim oranı ise Örneğin,

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

Ayrıca, o zaman SO insanlar toFixed kullanımına karşı uyarmıştı nerede iplik, BTW 100 yani list - (discount/100 * list)

bölün bu başvurmak zorunda (örneğin, 25 say) : How to format a float in javascript?

+1

Toplam .toFixed olmalıdır (2) total .ToFixed (2) – JasonH

İlgili konular