想知道是否有人可以解释为什么我的小计为1,而.00正在从小计中删除。
价格为1.00,itemQty为1。
var price = parseFloat(res.productPrice).toFixed(2);
var subTotal = price * parseInt(res.itemQty);
答案 0 :(得分:2)
1
和1.00
在数字上是相同的。
toFixed()
产生一个字符串。字符串几乎是1.00
和1
是两个不同值的唯一意义。
在price * parseInt(res.itemQty)
中,您在数值运算中使用了"1.00"
字符串,因此该值将被解释为数字。 subTotal
将是一个数字,因为它是数字运算的结果,因此它同时是1
和1.00
。
如果要使用小数表示,则需要再次使用toFixed
将其转换为字符串。
答案 1 :(得分:0)
您必须再次转换subTotal toFixed()
,因为它是一个数字。
答案 2 :(得分:0)
var price = parseFloat(res.productPrice).toFixed(2);
var subTotal = (price * parseInt(res.itemQty)).toFixed(2);
您必须在subTotal上调用toFixed()
才能返回字符串而不是数字。
答案 3 :(得分:0)
因为您没有使用toFixed(2)
将subTotal设为Stringvar res = {productPrice:3.00, itemQty:2}
var price = parseFloat(res.productPrice).toFixed(2);
var subTotal = price * parseInt(res.itemQty);
console.log(subTotal.toFixed(2));
我希望有帮助