如何在Firefox/IE7中处理超过17位数的数字?

10
为了一个Web应用程序,我希望能够处理最多64位大小的数字。 在测试期间,我发现javascript(或整个浏览器)似乎最多可处理17位数字。64位数字最多有20个数字,但在javascript处理完数字后,最不重要的3个数字将四舍五入并设为0....这是从哪里来的呢? 更重要的是,有什么方法可以解决这个问题吗?
4个回答

6
在JavaScript中,所有数字都是IEEE双精度浮点数,这意味着你只有大约16位的精度;其余的64位保留用于指数。正如Fabien所指出的那样,如果你需要所有的64位精度,你将需要运用一些技巧。

5

如果您已经达到了Javascript的限制(请参见此处),我认为您需要将它们视为字符串。


2

正如其他人所指出的,JS实现的是双精度浮点数,因此您需要寻找其他方法来处理更大的数字。 BigInt 是一个整数任意精度数学库。


0
你可以尝试将它们拆分成两个或更多数字(可能在一个类中),但是你可能需要一些算术辅助函数来处理它们。
祝好

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接