javascript - Math.sqrt() 返回无穷大?

标签 javascript math infinity square-root

Math.sqrt(); 似乎可以很好地处理长度小于 310 个字符的任何数字。

但是,任何 310 个字符或以上的数字都将返回无穷大...

如果您想自己测试一下,可以在 jsfiddle 上找到 http://jsfiddle.net/gqhk9/2

无论如何,我需要计算数字的平方根,包括一些 310 个字符或更长的数字。

我怎样才能在 js 中做到这一点?

最佳答案

这不是 Math.sqrt 的问题 - 摆脱 Math.sqrt 调用,您仍然会看到无穷大。基本上,Javascript 无法处理那么大的数字——它超出了 64 位浮点 IEEE 754 值的范围。您需要找到某种库来处理任意大小的整数。

请注意,即使对于小于 10309 的数字,前 ~15 位数字后的信息仍然会丢失。如果您关心所有这些数字,那么您应该再次查看专业数学图书馆。

快速浏览网页发现 BigInt.js引用了几次,但我不知道它有多好。

关于javascript - Math.sqrt() 返回无穷大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9867346/

相关文章:

javascript - 如何将最内矩形移到最外矩形内

algorithm - 如何通过坐标给定的点来识别可变大小的区域?

c++ - C++ float 是否保证有无穷大?

c - 为什么无穷大 = 0x3f3f3f3f?

javascript - react native 键盘避免使用 native 基础的 View

javascript - 无法读取动态数据表的未定义属性 'aDataSort'

javascript - 在 Javascript 谷歌地图 API 中从数组创建新标记

javascript - 在 JavaScript 中将音频从 getUserMedia() 编码为 .OGG

java - 对孤立的 arraylist 元素执行乘法

python - 假设 0 * infinity = 0,如何在 NumPy 中乘法 outer()?