gpt4 book ai didi

javascript - 如何在不损失任何精度的情况下在 Node.js 中存储极大的数字?

转载 作者:行者123 更新时间:2023-11-30 11:33:19 26 4
gpt4 key购买 nike

我需要能够加、减和存储(通过 JSON)高达 +/-99.99*10^2040 的数字,并且精度很高(低至 0,所以不是 0.9 或更低).我遇到的两个主要问题是 Infinity 远低于该值,而且大数字会失去精度。我非常希望不只是将整个内容转换为字符串,因为 JSON 文件很快就会变得困惑。我想过做一些类似 ["99", "50"] 的事情来符号化 99*10^50 但这要么会失去精度,要么会占用比仅使用字符串。我也研究过 biginteger 库,但出现了类似的问题,尤其是在将数字存储在 JSON 中时。

最佳答案

JavaScript 没有像 Java 那样处理大整数的 native 对象。您需要自己实现逻辑,我认为您已经有了一个良好的开端。

或者,您可以使用这个流行的实现。 Here's a library for BigInteger native in JavaScript.

您可以通过 npm 将它安装到您的 node.js 项目中:

npm 安装大整数

然后,您可以在需要的地方包含它:

let bigInt = require("big-integer");

之后,用法就非常简单了:

let largeNumber = bigInt("75643564363473453456342378564387956906736546456235345");

如果你需要 float ,Here's another node library for handling BigDecimal.

请注意,JSON 不接受这两种对象类型。如果您绝对必须通过 JSON 进行存储,那么您应该分别存储尾数和指数,并接受在许多情况下您将失去精度的事实。

关于javascript - 如何在不损失任何精度的情况下在 Node.js 中存储极大的数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45450891/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com