Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/404.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-科学符号中受限制的最大数字是多少?_Javascript - Fatal编程技术网

Javascript-科学符号中受限制的最大数字是多少?

Javascript-科学符号中受限制的最大数字是多少?,javascript,Javascript,在JavaScript中,我很想知道在科学记数法中可以表示的最大值是多少,而不会得到“无穷大”,因此我编写了一个小程序,发现它是这样的: 1797693134862315807937289714053034150799341327100378269361737789804449682927647509466490179775872070963302864166928879109465555478519404026306574886715058206819089020007083836762738

在JavaScript中,我很想知道在科学记数法中可以表示的最大值是多少,而不会得到“无穷大”,因此我编写了一个小程序,发现它是这样的:

17976931348623158079372897140530341507993413271003782693617377898044496829276475094664901797758720709633028641669288791094655554785194040263065748867150582068190890200070838367627385484581771153176447573027006985557136695962284291481986083493647529271907416844436551070434271155969950809304288017790417449779
可缩写为1.7976931348623157e+308

我的问题是,是什么使这个特定的数字成为JavaScript中可能的最大值?它依赖于硬件(可能是64位上的最大值?)还是特定于语言?为什么308是10的最大可用功率


还有,它在其他语言中有什么不同呢?

简短回答:
双精度浮动。由于double数据类型是如何定义的

长答案:

所有浮点数(double是双精度浮点)都被写为尾数和指数这两个值的乘积。原则上,这类似于用科学记数法写数字:对于数字1.34*10^24,尾数是1.34,指数是24

Number.MAX\u值

Number.MAX_value的值是数字类型的最大正有限值,约为1.7976931348623157e+308

此属性具有属性
{[[Writable]]:false、[[Enumerable]]:fafalse、[[Configurable]]:false}

浮点数(和双精度浮点数)的不同之处在于,将包含数字的总字节分为两部分,一部分用于尾数,另一部分用于指数。

这会给你一个10位的指数,指数有一个符号位,所以会给你一个从-1023到+1024的数字

但是,指数的基数不是10,而是2。浮点数指数的存储方式使用8位(用于浮点)或11位(用于双精度),这意味着您可以获得-127到+128(浮点)或-1023到+1024(双精度)的指数值


2^1024的值为1.7976931348623159077293305190789*10^308,这是双精度浮点的最大指数。

顺便说一句,你可以简单地使用
Number.MAX\u value
来获得这个值,你在想什么其他语言?@YuryTarabanko Bummer。不管怎样,做起来很有趣:)想想中间值。他们在记忆中是如何表现的?所以你们有308个数字作为字符串,但当你们把它转换成数字时,引擎用53位来存储308个“正确”的数字,对吗?@Hankrecords,我误解你们的问题了吗?