2014-03-25 58 views
0

我是一個uni的學生,已經開始學習java編程,並且據我所知float和double都做同樣的事情,它們都是用來寫整數的小數位。但是我覺得我完全錯了,因爲顯然不會有兩個命令來實現相同的目的。有人能解釋一下,如果有差異,並且如果可能的話,可以通過說明爲什麼浮動在雙重情況下不起作用,反之亦然。爲什麼選擇Float over Double或反之亦然?

P.S.我不是要求單一測驗或任何其他答案的答案,我已經在這裏得到了我的名字,只是真的試圖圍繞浮動和雙重之間的區別。

乾杯,

Chris。

+0

你可能想試試這個鏈接http://stackoverflow.com/questions/16627813/whats-the-difference-between-float-double-in-java –

回答

5

float爲4個字節寬,而double爲8個字節寬。在大多數情況下,您應該更喜歡使用double。你可以檢查IEEE floating point standard.

另外要注意的是,漂浮可以是雙打,但雙打不能漂浮,因爲雙打有更大的範圍。浮的

範圍是1.40129846432481707e-45到3.40282346638528860e + 38

範圍的雙被4.94065645841246544e-324D到1.79769313486231570e + 308D

1

浮游物佔用較少的空間,但代價是精度較低(浮游物爲4個字節,雙倍爲8)。這與你長時間選擇int相同的原因。某些數學運算在雙打上也可能較慢,但在實踐中,您可能需要一倍。

+0

在很多情況下,算術速度是一樣的。任何性能差異都是尺寸差異的後果 - 每個緩存線的數量較少等。 –

0

我所知道的唯一的區別是精度, 其中浮點數據類型是單精度32位IEEE 754浮點 和雙數據類型是雙精度64位IEEE 754浮點。

希望這有助於您更好地瞭解其差異。

+0

Double還具有比float更大的幅度範圍。 –

相關問題