2012-07-25 81 views
0

想知道是否有人可以闡明爲什麼我的小計是1,並且.00被從小計中剝離。JavaScript從我的小數中剝離.00?

價爲1.00,而itemQty爲1

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

你需要調用'toFixed'上小計爲好。 – 2012-07-25 09:20:08

+0

另外值得注意的是,這只是普通的JavaScript而不是jQuery :) – Sphvn 2012-07-25 09:26:14

+1

@Pankar在JavaScript中沒有向下轉換,因爲int和float都是'Number'對象。事情是,即使使用浮動,所有尾隨零也被移除。由於這個限制'toFixed'返回'String',而不是'Number'。 – 2012-07-25 09:58:17

回答

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

您必須在subTotal上調用toFixed()才能返回字符串而不是數字。

0

你必須再次轉換小計toFixed(),因爲它是一個數字。

2

11.00在數字上是相同的東西。

toFixed()產生一個字符串。字符串幾乎是唯一的意義,其中1.001是兩個不同的值。

price * parseInt(res.itemQty)您正在使用數字操作中的"1.00"字符串,因此該值將被解釋爲數字。 subTotal將是一個數字,因爲它是數字運算的結果,因此它同時是11.00

如果想要用小數表示它,則需要再次使用toFixed將其轉換爲字符串。

+0

釘在頭上。 – Sphvn 2012-07-25 09:25:04

0

因爲你還沒有使用toFixed做的小計字符串(2)

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)); 

我希望幫助