我想在不丢失任何精度的情况下将浮点变量转换为字符串。
即我希望字符串具有与我的浮点变量包含的信息相同的信息,因为我使用输出进行进一步处理(即使这意味着字符串将非常长且可读)。
为了更清楚地说明这一点,我想要循环转换的功能
var dA = 323423.23423423e4;
var sA = toString(dA);
var dnA = toDouble(sA);
Run Code Online (Sandbox Code Playgroud)
我希望 dnA 和 dA 相等
谢谢
PS:互联网上的资料来源通常谈论如何舍入字符串,但我还没有找到有关确切表示的信息。另外我对任意精度计算不感兴趣,我只需要双精度浮点运算。
让字符串算术进行字符串转换,然后使用parseFloat
将其恢复为浮点数:
var dA = 323423.23423423e4;
var sA = dA + '';
var dnA = parseFloat(sA);
Run Code Online (Sandbox Code Playgroud)
这是一个小提琴,可以看到它的实际效果。
注意: 所有 JavaScript 数字都是 doubles,因此您无需区分 doubles 和 floats。因此,您唯一需要担心精度损失的地方是您的第一行。例如,如果您var dA = 987654321.0123456789
对第一行进行了操作,则它等效于var dA = 987654321.01234567
,并且dA
最终仍然相等dnA
。
归档时间: |
|
查看次数: |
11846 次 |
最近记录: |