JavaScript从我的小数中剥离.00?

时间:2012-07-25 09:16:19

标签: javascript

想知道是否有人可以解释为什么我的小计为1,而.00正在从小计中删除。

价格为1.00,itemQty为1。

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

4 个答案:

答案 0 :(得分:2)

11.00在数字上是相同的。

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

price * parseInt(res.itemQty)中,您在数值运算中使用了"1.00"字符串,因此该值将被解释为数字。 subTotal将是一个数字,因为它是数字运算的结果,因此它同时是11.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设为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));

我希望有帮助