IEEE 754之后的Java脚本用于存储数字(整数和浮点值)。
其中53位用于表示mantisa部分,11位用于表示指数部分。
53位的最大值表示为+/- 9007199254740992。 最大值表示11位是+ -1024。
java脚本中的Number.MAX_VALUE是1.7976931348623157e + 308为什么不是9007199254740992e + 1024 ???
第二个可以用64位表示,它是大值。
答案 0 :(得分:5)
AeB
语法镜像scientific notation,因此意味着A * 10^B
,而不是A * 2^B
。最大binary64值是9007199254740992 * 2 ^ 1024(或类似的东西),而不是9007199254740992 * 10 ^ 1024。您提议的9007199254740992e+1024
表示后者并且多更大(10 ^ 1024~ = 2 ^ 3402),因此它实际上不适合64位二进制浮点数(试试吧!)
答案 1 :(得分:1)
科学记数法e + 308表示10 ^ 308,约为0.5562 * 2 ^ 1024。
答案 2 :(得分:1)
实际答案是(2 ^ 54-1)/ 2 ^ 53 *(2 ^ 1023)。在Wikipedia上查找! (双精度浮点格式