Большое число в строке без "e"
В JS есть средства конвертировать большое десятичное число в строку не используя экспоненциальную форму? Потому что "e" используется по умолчанию.
Для оснований отличных от 10 - все ОК. var n = Math.pow(20,20); console.log( n.toString() ); // 1.048576e+26 console.log( n.toString(10) ); // 1.048576e+26 console.log( n.toString(9) ); // 71720501565254210065262366864 |
Можно попробовать что то сделать самому
Number.prototype.toView = function () { return this.toString().replace(/^(\d+)\.(\d+)e\+(\d+)$/, function ($0, $1, $2, $3) { var before = $2.substr(0, +$3), after = $2.substr(before.length); return $1 + before + ( after ? "." + after : new Array( +$3 - before.length + 1).join("0") ); }); } alert( ( 1.123456 * Math.pow(10, 4) ).toView()); alert( ( 1.123456 * Math.pow(10, 40) ).toView()); |
poorking,
этакая жадная аппроксимация :D |
monolithed,
:) ну да, смотря для каких целей, хотя что-то мне подсказывает, что для целей, где нужно показывать прям все разряды таких больших чисел, это 100% не подойдет ))) |
Часовой пояс GMT +3, время: 04:39. |