我是一個uni的學生,已經開始學習java編程,並且據我所知float和double都做同樣的事情,它們都是用來寫整數的小數位。但是我覺得我完全錯了,因爲顯然不會有兩個命令來實現相同的目的。有人能解釋一下,如果有差異,並且如果可能的話,可以通過說明爲什麼浮動在雙重情況下不起作用,反之亦然。爲什麼選擇Float over Double或反之亦然?
P.S.我不是要求單一測驗或任何其他答案的答案,我已經在這裏得到了我的名字,只是真的試圖圍繞浮動和雙重之間的區別。
乾杯,
Chris。
我是一個uni的學生,已經開始學習java編程,並且據我所知float和double都做同樣的事情,它們都是用來寫整數的小數位。但是我覺得我完全錯了,因爲顯然不會有兩個命令來實現相同的目的。有人能解釋一下,如果有差異,並且如果可能的話,可以通過說明爲什麼浮動在雙重情況下不起作用,反之亦然。爲什麼選擇Float over Double或反之亦然?
P.S.我不是要求單一測驗或任何其他答案的答案,我已經在這裏得到了我的名字,只是真的試圖圍繞浮動和雙重之間的區別。
乾杯,
Chris。
float爲4個字節寬,而double爲8個字節寬。在大多數情況下,您應該更喜歡使用double。你可以檢查IEEE floating point standard.
另外要注意的是,漂浮可以是雙打,但雙打不能漂浮,因爲雙打有更大的範圍。浮的
範圍是1.40129846432481707e-45到3.40282346638528860e + 38
範圍的雙被4.94065645841246544e-324D到1.79769313486231570e + 308D
浮游物佔用較少的空間,但代價是精度較低(浮游物爲4個字節,雙倍爲8)。這與你長時間選擇int相同的原因。某些數學運算在雙打上也可能較慢,但在實踐中,您可能需要一倍。
在很多情況下,算術速度是一樣的。任何性能差異都是尺寸差異的後果 - 每個緩存線的數量較少等。 –
一般漂浮使用4個字節和雙用途8個字節以浮點(尾數+指數)格式/表示形式存儲該值。看到這個wikepedia寫了一個介紹這些概念,如果你有興趣:http://en.wikipedia.org/wiki/Floating_point
我所知道的唯一的區別是精度, 其中浮點數據類型是單精度32位IEEE 754浮點 和雙數據類型是雙精度64位IEEE 754浮點。
希望這有助於您更好地瞭解其差異。
Double還具有比float更大的幅度範圍。 –
你可能想試試這個鏈接http://stackoverflow.com/questions/16627813/whats-the-difference-between-float-double-in-java –