我是javascript的新手,所以请原谅,如果这是毫无价值的问题。 但是,我有一个大的十进制数,我需要显示没有任何指数表示法。
例如var a = 0.00000000005545545468864654应显示为0.00000000005545545468864654而不是5.545545468864654e-11
任何人都可以帮我解决这个问题。
我尝试过以下方法
var a = 0.00000000005545545468864654
Number.parseFloat(a).toFixed(30)
其中30是小数位数。但这种方法不起作用并给出结果“0.000000000055455454688646537182”,这不是“0.00000000005545545468864654”
答案 0 :(得分:0)
为什么只有26个十进制小数位。
var a = 0.00000000005545545468864654
console.log(Number.parseFloat(a).toFixed(26));

答案 1 :(得分:0)
如果您愿意,可以使用以下功能:
function toFixed(x) {
if (Math.abs(x) < 1.0) {
var e = parseInt(x.toString().split('e-')[1]);
if (e) {
x *= Math.pow(10,e-1);
x = '0.' + (new Array(e)).join('0') + x.toString().substring(2);
}
} else {
var e = parseInt(x.toString().split('+')[1]);
if (e > 20) {
e -= 20;
x /= Math.pow(10,e);
x += (new Array(e+1)).join('0');
}
}
return x;
}
const num = 0.00000000005545545468864654;
console.log(toFixed(num))
答案 2 :(得分:0)
精度是十进制数的二进制表示的内在问题。有技术和精密设定器只能达到一定的精度。然后限制被击中。这不是一个可以解决的问题,但解决方法包括:
当然,已经建立了图书馆来解决这个问题。校验 BigNumbers基于decimaljs