尝试将数字格式化为2位小数jQuery

可能重复:
JavaScript:格式化数字,正好是两位小数

使用变量有点混乱,现在似乎无法让计算完全起作用!?

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

$(this).temp1()看起来特别$(this).temp1() ,我想你只是想使用temp1变量。 由于它已经是一个数字,你不需要在它上面使用parseFloat

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

我建议你在计算之前先将字符串转换为数字。 例如,

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

此外,如果折扣是百分比(例如,比如25),那么你必须除以100即list - (discount/100 * list)

顺便说一下,请参考这个SO线程,人们已经警告过ToFixed用法: 如何在javascript中格式化浮点数?