JavaScript从我的小数中去掉.00?
我想知道是不是有人能解释为什么我的小计是1,而小计中的.00被去掉了 价格为1.00,项目数量为1JavaScript从我的小数中去掉.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
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));