Когда вы запускаете огромную сумму в JS, она выходит с чем-то вроде: 1.0328135768135768e+21
. Есть ли способ заставить его выводить чистое целое число, даже если оно очень длинное?Как остановить javascript от чисел форматирования?
Спасибо.
Когда вы запускаете огромную сумму в JS, она выходит с чем-то вроде: 1.0328135768135768e+21
. Есть ли способ заставить его выводить чистое целое число, даже если оно очень длинное?Как остановить javascript от чисел форматирования?
Спасибо.
.toString()
method, похоже, делает трюк. Сортировать по:
1.0328135768135768e+21.toString("10");
// "1032813576813576802460"
1.0328135768135768e+50.toString("10")
// "103281357681357664662886440420862446808642642662440"
Заметим, что (как показано выше) из-за обработки JS в чисел с плавающей точкой не только получить цифры, указанные с нулями на конце.
Если вы хотите, чтобы все нули на конце, вы всегда можете отформатировать его самостоятельно:
function formatNumber(n) {
var s = n + "",
a = s.split("e");
if (a.length === 1)
return s;
s = a[0].replace(/\./,"");
s += (new Array(+a[1] - s.length + 2).join("0"));
return s;
}
Demo: http://jsfiddle.net/HLQQ9/ (Примечание: не тестировалось тщательно вообще, только полусырой идея, которую я взломал вместе дать вам отправную точку.)
Или есть несколько библиотек big number.
+1, спасибо, работает отлично. –
Нет, если число не находится за пределами целочисленного диапазона, как в приведенном выше примере. – marekful