2017-05-25 105 views
0

我試圖將數字轉換在以下格式轉換0到0.00的數

0 -> 0.00 
1 -> 1.00 
1.1 -> 1.10 
4.0 -> 4.00 

但問題是它返回的字符串僅

value = 0; 
var s = Math.floor(value/60) + "." + (value % 60 ? value % 60 : '00'); 
console.log(s+s); //just checking if its number 

但其返回的字符串,我試過parseInt函數,但它的返回值只有0。我試過ParseFloat and fixedTo(2),它只返回字符串。

+1

如果您格式化數字進行顯示,它會變成一個字符串。沒有別的辦法。 –

+0

@Rajesh:它返回字符串 – Vishnu

+0

'0'和'0.00'是_literals_表示相同的數字值。根據定義您無法獲得Number _literal_;只有一個字符串。然而,目前尚不清楚,你究竟在做什麼。 – raina77ow

回答

3

正如在評論中看到的那樣,在JavaScript中沒有辦法。格式化數字總是返回一個Srting。對於這一點,你有一定的可能性,但

Number(1).toFixed(2) // "1.00" - setting the number of digits after the decimal point 
Number(1).toPrecision(2) // "1.0" - setting the number of digits 

這些是打印出來,所以通常情況下,它不應該,如果它是一個字符串或數值關係。

然後,如果你想使用它作爲一個數字,你只需按照@Max的建議,並使用函數Number(str)或簡寫+str轉換它。

+0

它不適用於打印,它用於傳遞給另一個函數 – Vishnu

+0

請問格式化數字與其他函數有什麼關係,請問?在我看來,如果一個函數需要一個數字,那麼如果它被格式化,它就是一樣的。但也許我缺乏想象力...... – Misu