JavaScript从我的小数中去掉.00?

JavaScript从我的小数中去掉.00?,javascript,Javascript,我想知道是不是有人能解释为什么我的小计是1,而小计中的.00被去掉了 价格为1.00,项目数量为1 var price = parseFloat(res.productPrice).toFixed(2); var subTotal = price * parseInt(res.itemQty); 您必须再次将小计转换为固定(),因为它是一个数字。1和1.00在数字上是相同的 toFixed()生成一个字符串。字符串几乎是唯一意义上的1.00和1是两个不同的值 在price*parseInt(r

我想知道是不是有人能解释为什么我的小计是1,而小计中的.00被去掉了

价格为1.00,项目数量为1

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

您必须再次将小计
转换为固定()
,因为它是一个数字。

1
1.00
在数字上是相同的

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

price*parseInt(res.itemQty)
中,您在数值运算中使用了
“1.00”
字符串,因此该值将被解释为一个数字<代码>小计将是一个数字,因为它是数值运算的结果,因此它同时是
1
1.00

如果要用小数表示,则需要再次使用
toFixed
将其转换为字符串

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

您必须对小计调用
toFixed()
,以返回字符串而不是数字。

因为您没有使用toFixed(2)将小计设置为字符串


我希望这有帮助

您也需要在小计中调用
toFixed
。另外值得注意的是,这只是简单的JavaScript而不是jQuery:)@pankar在JavaScript中没有向下转换,因为int和float都是
Number
对象。问题是,即使使用浮点数,所有尾随的零也会被删除。由于此限制,
toFixed
返回一个
字符串
,而不是
数字
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));