2017-04-19 51 views
0

我意識到這已經被問到了一些形狀或形式很多次,但我迄今爲止讀過的每個答案都說使用.toFixed(2),不幸的是,它返回結果爲a 字符串JavaScript - parseFloat強制2位小數爲NUMBER

有些人建議解析兩次,如:

parseFloat(parseFloat("29.6").toFixed(2)) 

但返回:

29.6 

有沒有辦法迫使parseFloat(或別的!)返回一個NUMBER類型有2位小數?

+7

一個實際*編號*將不具有在其打印表示的小數部分尾隨'0'。 –

+0

爲什麼小數點後需要2位數字?它需要被顯示,'string'類型是合適的,如果它需要在計算中使用,則零不重要。 –

+0

這是因爲'5.50000'是'5.5',如果它是一個數字。如果你想在'0'之後不'parseFloat'返回值'toFixed',這是一個字符串('「」29.60「')。 –

回答

0

可以使用:

var your_value = 10.01 // replace with any value you desire 
parseFloat(Math.round(your_value * 100)/100).toFixed(2); 

實例

var j = parseFloat(Math.round(29.6 * 100)/100).toFixed(2); 
console.log(j); 
//Output = >"29.60" 
var j = parseFloat(Math.round(30.2100 * 100)/100).toFixed(2); 
console.log(j); 
//Output =>"30.21" 
+0

這不回答這個問題。您正在創建一個字符串,而OP需要一個數字。 –

+0

OP已經聲明'toFixed'不會做他們想做的事。 (JS並沒有做他們想做的事情,這是我們試圖解釋的。) –

+0

我明白了。那麼這個問題並不奇怪,因爲無論我們嘗試29.60還是基本29.6轉換爲數字類型。對不起,我真的沒有讀過數字部分。 –