长使用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. 为什么我们需要fieldset标签?
- 4. 为什么我们需要RIA?
- 5. 为什么我们需要extern?
- 6. 为什么我们需要.htaccess的worpdress?
- 7. 为什么我们需要IAudioRenderClient接口
- 8. 为什么我们需要使用ExitWindowsEx
- 9. 为什么我们需要9补丁?
- 10. 为什么我们需要在JavaScript
- 11. 我们为什么需要纤维
- 12. 为什么我们需要BeginGetResponse和BeginRead?
- 13. 为什么我们需要包装类
- 14. 为什么我们需要TensorFlow tf.Graph?
- 15. 为什么我们需要Bower和Nuget?
- 16. 为什么我们需要ng-click?
- 17. 为什么我们需要`ngDoCheck`
- 18. 为什么我们需要boost :: thread_specific_ptr?
- 19. 为什么我们需要Java NIO Selector?
- 20. 为什么我们需要设置SONAR_RUNNER_OPTS?
- 21. 为什么我们需要Anaconda 2.7?
- 22. 为什么我们需要mktemp?
- 23. 为什么我们需要ClassMethods和InstanceMethods?
- 24. JSP:为什么我们需要RequestDispatcher?
- 25. mongodb为什么我们需要getSisterDB
- 26. 为什么我们需要ioc容器
- 27. 为什么我们需要RBAC许可?
- 28. 为什么我们需要scalaz.stream迭代?
- 29. 为什么我们需要Buffer.isBuffer方法?
- 30. 为什么我们需要WCF
它的精确度的问题。 –
Float不能*完全*代表long的所有值。 – Blorgbeard
为什么投票-1为我的文章 - - ! – happyWinner