javascript - 将 Double 转换为 String 而不会在 javascript 中丢失精度

标签 javascript

我想在不损失任何精度的情况下将浮点变量转换为字符串。

即我希望该字符串具有与我的浮点变量包含的信息相同的信息,因为我将输出用于进一步处理(即使这意味着该字符串将非常长且可读)。

说得更清楚一点,我想要循环转换的函数

var dA = 323423.23423423e4;
var sA = toString(dA);
var dnA = toDouble(sA);

我希望 dnA 和 dA 相等

谢谢

PS:互联网上的资源通常会讨论如何舍入字符串,但我还没有找到关于精确表示的信息。另外我对任意精度计算不感兴趣,我只需要 double 浮点运算。

最佳答案

让字符串算法进行字符串转换,然后使用 parseFloat 将其恢复为 float :

var dA = 323423.23423423e4;
var sA = dA + '';
var dnA = parseFloat(sA);

Here's a fiddle 看看它的实际效果。

注意: All JavaScript numbers are doubles ,因此您无需区分 double 和 float 。因此,您唯一需要担心精度损失的地方是第一行。例如,如果您在第一行输入了 var dA = 987654321.0123456789,那么它将等同于 var dA = 987654321.01234567,而 dA 仍然最后等于 dnA

关于javascript - 将 Double 转换为 String 而不会在 javascript 中丢失精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13767088/

相关文章:

javascript - 如何使用 axios 将 api 请求设置为 google drive api

javascript - 在 Node 中使用 lua 脚本扫描按键

javascript - 数据可视化条构建

javascript - chrome-har-capturer load 不是函数

JavaScript 重构

javascript - 从本地 html/javascript(没有网络服务器)访问 google apis

c# - 在 asp.net 页面中使用 JavaScript

javascript - 未捕获的类型错误 : Cannot read property 'top' of undefined

c# - 从 javascript 函数调用 .cs 文件内的程序以实现 onkeypress 函数 ASP.net

javascript - THEN 语句返回 promise /始终返回和一致返回错误