gpt4 book ai didi

javascript - 在 Javascript 中以非指数/短形式转换/表达双数

转载 作者:行者123 更新时间:2023-12-02 20:12:47 25 4
gpt4 key购买 nike

我在 Javascript 中有一个 double 值,例如,其值为 1.0883076389305e-311。我想用以下形式表达它,例如使用 'bc' 实用程序来计算扩展/更高精度/比例形式:

$ bc
scale=400
1.0883076389305000*10^-311
.0000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000000000000000000000000000000000\
00000000000000000000000000000000000000010883076389305000000000000000\
0000000000000000000000000000000000000000000000000000000000000

我需要一个 Javascript bigint 库或代码来生成与数字扩展/更高精度形式的字符串相同的输出。

谢谢!

最佳答案

这很糟糕,但适用于我能想到的每个测试用例:

Number.prototype.toFullFixed = function() {
var s = Math.abs(this).toExponential();
var a = s.split('e');
var f = a[0].replace('.', '');
var d = f.length;
var e = parseInt(a[1], 10);
var n = Math.abs(e);

if (e >= 0) {
n = n - d + 1;
}

var z = '';
for (var i = 0; i < n; ++i) {
z += '0';
}

if (e <= 0) {
f = z + f;
f = f.substring(0, 1) + '.' + f.substring(1);
} else {
f = f + z;
if (n < 0) {
f = f.substring(0, e + 1) + '.' + f.substring(e + 1);
}
}

if (this < 0) {
f = '-' + f;
}

return f;
};

如果您发现一个无法正确解析的数字,即 n !== parseFloat(n.toFullFixed()),请告诉我它是什么!

关于javascript - 在 Javascript 中以非指数/短形式转换/表达双数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6761630/

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