長使用8字節和浮點數也使用8字節。但float可以代表長的所有值,並且具有比長更寬的範圍。 那麼,爲什麼我們需要長型?爲什麼我們需要長型?
回答
考慮一個事實,正如您所指出的那樣,long和float都是8個字節長。這意味着它們可以表示完全相同的數值 - 即2^64個不同的值。
正如你所說的,float可以表示比long類型更廣泛的值。因此,浮動一定不能代表沿該範圍的每個值。浮點數是一個近似值。
例如,long可能能夠表示100,101和102,而float可能只能表示100和102.這些僅僅是示例,但這個概念是成立的 - 浮點數不能完全代表每個值的範圍。
這兩種數據類型被「解釋」不同。如果它是一個長整型,那麼「00110101」位將轉換爲一個數字,如果它是一個浮點數,則轉換爲完全不同的數字。
您可以閱讀多頭的全部細節,並漂浮在Java語言規範:
整數類型:http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.1
浮點類型:http://docs.oracle.com/javase/specs/jls/se7/html/jls-4.html#jls-4.2.3
非常感謝。 – happyWinner
但101等於1.100101 *(2^6)二進制。我想101可以用float來表示嗎? – happyWinner
我明白了。例如,如果float的壓裂部分是4位,那麼float就不能代表1000001.是不是? – happyWinner
- 1. 模型中有什麼?爲什麼我們需要使用它
- 2. DavLockDB:我們需要什麼?
- 3. 爲什麼我們需要simple_one_for_one?
- 4. 爲什麼我們需要TensorFlow tf.Graph?
- 5. 爲什麼我們需要使用prompt.start()?
- 6. 爲什麼我們需要scalaz.stream迭代?
- 7. 爲什麼我們需要WCF
- 8. 爲什麼我們需要Anaconda 2.7?
- 9. 爲什麼我們需要編寫log.isDebugEnabled?
- 10. 爲什麼我們需要ng-click?
- 11. 爲什麼我們需要Control.Lens.Reified?
- 12. 我們爲什麼需要纖維
- 13. 爲什麼我們需要org.junit.ComparisonFailure?
- 14. 爲什麼我們需要addRequestHeader方法?
- 15. 爲什麼我們需要時代?
- 16. 爲什麼我們需要ContinueWith方法?
- 17. 爲什麼我們需要Java NIO Selector?
- 18. 爲什麼我們需要使用ExitWindowsEx
- 19. 爲什麼我們需要包裝類
- 20. 爲什麼我們需要在JavaScript
- 21. 爲什麼我們需要設置SONAR_RUNNER_OPTS?
- 22. 爲什麼我們需要ioc容器
- 23. mongodb爲什麼我們需要getSisterDB
- 24. 爲什麼我們需要BeginGetResponse和BeginRead?
- 25. 爲什麼我們需要fieldset標籤?
- 26. 爲什麼我們需要boost :: thread_specific_ptr?
- 27. JSP:爲什麼我們需要RequestDispatcher?
- 28. 爲什麼我們需要calloc(或malloc)?
- 29. 爲什麼我們需要.htaccess的worpdress?
- 30. 爲什麼我們需要9補丁?
它的精確度的問題。 –
Float不能*完全*代表long的所有值。 – Blorgbeard
爲什麼投票-1爲我的文章 - - ! – happyWinner