long 使用8个字节, float 也使用8个字节。但 float 可以表示 long 的所有值,并且具有比 long 更宽的范围。 那么,为什么我们需要 long 类型?
答案 0 :(得分:0)
考虑一下这个事实,正如你所指出的那样,long和float都是8个字节长。这意味着它们都可以表示完全相同数量的值 - 即2 ^ 64个不同的值。
如你所说,浮动可以代表比长期更广泛的价值范围。因此,浮点数必须不能表示沿该范围的每个值。浮点数是近似值。
例如,long可能能够表示100,101和102,而float可能只能表示100和102.这些只是示例,但概念成立 - 浮点数无法准确表示每个值沿着它的范围。
两种数据类型的“解释”方式不同。如果它是一个长整数位“00110101”则转换为一个数字,如果它是一个浮点数则转换为完全不同的数字。
您可以在Java语言规范中阅读有关long和float的完整详细信息:
整数类型: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