我有一個簡單的問題需要解決,我有一個包含雙精度的變量,我正在讀取另一個來自用戶輸入的double。我需要將這兩個數字相加並將結果輸出到屏幕上。在我工作過的其他語言中,只有它是雙精度的這一事實會導致它用小數打印,即使它是整數。在Javascript中,情況並非如此。在沒有四捨五入的情況下在Javascript中打印整數作爲小數點
var d = 2.0;
console.log(d) // out is 2
我可以強制使用toFixed()
打印一個小數,但隨後它會圓其他輸入的結果。如果結果是2.0,我希望它打印「2.0」,如果結果是2.345,我希望它打印「2.345」。
的解決方案,我現在所擁有的是將其轉換爲字符串,如果它是一個整數:
var d2 = 4.0
console.log((d2 % 1 == 0) ? d2+".0" : d2) // out is 4.0
我覺得必須有一些更好的方式來做到這一點。這對我來說似乎很笨拙。我一直在尋找解決方案,但到目前爲止我發現的所有東西都使用toFixed()
或其他四捨五入。
JavaScript只有一種類型的數字,所以一切都是雙重的。它不關心它是否是整數;你必須手動進行格式設置。 – Tashi
在JavaScript中,不存在小數或雙精度等。一切都是一個數字,這是相當混亂(而不是在大多數語言) – dirkk