2015-07-13 75 views
0

以下是否正確?爲什麼?JavaScript動態輸入int/float

x = 7; 
y = 7.00; 
z = x + y; 
console.log(z); 

結果:

我想到日誌結果爲 「14.00」。

+0

真的已經在這裏回覆了這裏。 http://stackoverflow.com/questions/3612744/javascript-remove-insignificant-trailing-zeros-from-a-number – EasyBB

+1

JavaScript實際上並沒有「int」類型:所有數字都是浮點數。對於貨幣,您可能想要使用類似'z.toFixed(2)'的東西來進行顯示。 – Curt

+0

@Curt:實際上,對於貨幣來說,最好是用積分值做所有的計算,然後在顯示時除以100(當然,你會像顯示的那樣顯示它們)。因爲十進制值不精確。即使積分值以浮點形式存儲,它們精確到'9007199254740991',不像十進制數字,由於浮點函數的作用,精確度不能精確。 – Amadan

回答

5

99%的真實聲明:JavaScript中沒有「動態類型int/float」,因爲JavaScript中沒有整型或浮點數。 console.log將寫出最緊湊的表示。實際上,console.log(7.00)顯示7

更正確的說法:整數在JavaScript內部可用(主要是位操作的結果),但所有到達您的程序的數字都是浮點數。

最後,沒有理由爲什麼console.log應該顯示兩位小數,除非最緊湊的表示有兩位小數(如7.23)。

+0

如果不是console.log()調用,我在我的Chrome控制檯中執行此操作: – Scotty