gpt4 book ai didi

javascript - 如何从文件中读取数据而不对精度超过 16 位的数字进行舍入?

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:18 27 4
gpt4 key购买 nike

使用 fs 模块的 readFileSync 方法从 Node.js 中的文件读取数据时,默认情况下,精度超过 16 位的数字会自动舍入。

var data = fs.readFileSync(file)

数据包含自动舍入的数字,如下所示:

0.91544900000000007 is rounded to 0.9154490000000001

4647.3424257097241 to 4647.342425709725

如何从文件中按原样读取数据而不进行舍入?

最佳答案

当您读取文件时,您会收到一个字符串。字符串无法舍入。

// temp.txt:
9154490000000000723581950185310538193807258123518235015387
// node:
fs.readFileSync('temp.txt').toString(); // not rounded

至于将字符串解析为 float 时的舍入,整数有 BigInt

// node:
let str = fs.readFileSync('temp.txt').toString();
let int = BigInt(str);

我不知道 Vanilla Node 中有类似的 float 解决方案。您可以查看 npm 包,例如也许是 BigFloat。

关于javascript - 如何从文件中读取数据而不对精度超过 16 位的数字进行舍入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59956646/

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