0

想知道是否有人可以解释为什么我的小计是 1,并且 .00 被从小计中剥离。

price 是 1.00,itemQty 是 1。

var price = parseFloat(res.productPrice).toFixed(2);
var subTotal = price * parseInt(res.itemQty);
4

4 回答 4

1

1并且1.00在数字上是相同的。

toFixed()产生一个字符串。字符串几乎是唯一意义上的1.001是两个不同的值。

如果price * parseInt(res.itemQty)"1.00"在数字运算中使用字符串,因此该值将被解释为数字。subTotal将是一个数字,因为它是数值运算的结果,因此它既是又是1同时1.00

如果你想用小数显示它,你需要toFixed再次使用将它转换为字符串。

于 2012-07-25T09:20:17.640 回答
0

您必须toFixed()再次转换 subTotal,因为它是一个数字。

于 2012-07-25T09:20:09.817 回答
0
var price = parseFloat(res.productPrice).toFixed(2);
var subTotal = (price * parseInt(res.itemQty)).toFixed(2);

您必须调用toFixed()subTotal 以返回字符串而不是数字。

于 2012-07-25T09:23:09.603 回答
0

因为您没有使用 toFixed(2) 将 subTotal 设为 String

var res = {productPrice:3.00, itemQty:2}
var price = parseFloat(res.productPrice).toFixed(2);
var subTotal = price * parseInt(res.itemQty);

console.log(subTotal.toFixed(2));

我希望这会有所帮助

于 2012-07-25T09:24:59.027 回答