Types 为什么我们需要长字体?

Types 为什么我们需要长字体?,types,Types,long使用8字节,float也使用8字节。但float可以代表long的所有值,并且比long的范围更广。 那么,为什么我们需要long类型呢?考虑一下,正如您所指出的,long和float都是8字节长的。这意味着它们可以表示完全相同数量的值,即2^64个不同的值 正如您所说,float可以表示比long更宽的值范围。因此,float不能表示该范围内的每个值。浮点数是一种近似值 例如,long可能表示100、101和102,而float可能仅表示100和102。这些只是例子,但这个概念是正确的

long使用8字节,float也使用8字节。但float可以代表long的所有值,并且比long的范围更广。
那么,为什么我们需要long类型呢?

考虑一下,正如您所指出的,long和float都是8字节长的。这意味着它们可以表示完全相同数量的值,即2^64个不同的值

正如您所说,float可以表示比long更宽的值范围。因此,float不能表示该范围内的每个值。浮点数是一种近似值

例如,long可能表示100、101和102,而float可能仅表示100和102。这些只是例子,但这个概念是正确的——float不能准确地表示其范围内的每个值

这两种数据类型的“解释”不同。位“00110101”如果是长的,则转换为一个数字;如果是浮点数,则转换为完全不同的数字

您可以阅读Java语言规范中有关long和float的完整详细信息:

整数类型:


浮点类型:

这是一个精度问题。浮点不能精确地表示long的所有值。为什么要为我的帖子投-1票呢!但在二进制中,101等于1.100101*(2^6)。我想101可以用浮点数来表示?我知道你的想法了。例如,如果float的frac部分为4位,则float不能表示1000001。是这样吗?