观察Java(但其他语言可能类似或相同),long和double都使用8个字节来存储一个值。
long使用8个字节来存储从-9,223,372,036,854,775,808到9,223,372,036,854,775,807的长整数
double使用8个字节来存储双精度浮点数,范围从-1.7E308到1.7E308,最多具有16位有效数字。
我的问题是,如果两者使用相同数量的字节(8个字节或2^64),double如何存储更长的数字?1.7E308比9,223,372,036,854,775,807大得多。
int
或long
值则以普通数字的计算机等效形式存储(例如12345678,没有小数点和指数)。浮点/双精度数的范围更大,但精度较低。 - Hot Licks