可能重复:
JavaScript: formatting number with exactly two decimals
使用变量有点混乱,现在似乎无法让计算完全正常工作!?
$("#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);
});
答案 0 :(得分:23)
$(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);
});
答案 1 :(得分:3)
我建议你在计算之前先将字符串转换为数字。例如,
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用法:How to format a float in javascript?