Javascript convertit une grande INT en notation scientifique lorsque le nombre devient grand. Comment puis-je empêcher cela?
Merci!
Javascript convertit une grande INT en notation scientifique lorsque le nombre devient grand. Comment puis-je empêcher cela?
Merci!
Il y a Nombre.toFixed, mais il utilise la notation scientifique si le nombre est >= 1e21 et a une précision maximum de 20. Autre que cela, vous pouvez rouler votre propre, mais il sera en désordre.
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;
}
Ci-dessus utilise à bon marché-'n'-simple chaîne de redoublement ((new Array(n+1)).join(str)
). Vous pouvez définir String.prototype.repeat
à l'aide de Paysan russe Multiplication et l'utiliser à la place.
Sinon, vous pouvez utiliser un BigInt de la bibliothèque.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.