2014-11-21 21 views
0

我有一個腳本如下分配使用parseFloat變量:故障轉換的JavaScript字符串編號

var vendorCost = parseFloat(vendorSearchresults[0].getValue('vendorcost')).toFixed(2); 

我認爲這將使該變量的數字。但是,當我用typeof檢查它時,它將它報告爲一個字符串。我的解決方案如下:

vendorCost = parseFloat(vendorCost); 

其中一期工程,但我想編碼時要更有效,更想了解爲什麼分配時一個數值,它不會使vendorCost多少?有沒有辦法讓第一條語句讓vendorCost成爲一個數字而不需要第二條語句?提前致謝。

更新 - 只是覺得我應該提到我有完全相同的問題,而無需使用.toFixed -

var vendorLandedCost = parseFloat(vendorSearchresults[0].getValue('custentity_asg_landed_cost','vendor')); 
    vendorLandedCost = parseFloat(vendorLandedCost); 

回答

1

最後toFixed()調用的第一個parseFloat成一個字符串的結果轉換。

看起來您需要將數字四捨五入到小數點後兩位,這就是您使用parseFloat調用的原因。你可以這樣做:

vendor_cost = Math.round(parseFloat(vendorSearchresults[0].getValue('vendorcost')) * 100)/100 
+0

只是添加了一個相同的事情發生的例子,而不使用toFixed。 – ASGJim 2014-11-21 20:48:23

+0

@ASGJim:你是否檢查過'parseFloat(vendorSearchresults [0] .getValue('custentity_asg_landed_cost','vendor'));'確實是一個字符串? – MAK 2014-11-21 20:50:36

+0

是的。在我添加'vendorLandedCost = parseFloat(vendorLandedCost)之前;'它返回字符串。在我添加該語句後,它返回數字。 – ASGJim 2014-11-21 20:56:07

0

那麼,Number.toFixed返回字符串,因爲它是一個數據表示函數。

請參閱the docs