Убрать эскпоненциальную запись числа
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script> </head> <body> <hr/> <h2> 1 000 </h2> <div class="thousand"> </div> <h2> 10 000 </h2> <div class="thousand10"> </div> <h2> 100 000 </h2> <div class="thousand100"> </div> <h2> 1 000 000 </h2> <div class="thousand1000"> </div> <script> /*выбираем из строки только числа, * перед тем как вернуть в точку вызова результат, * проверяем, что результат - имеет тип данных number; * parseInt() - преобразование строки в число; * num - число*/ function parseStrAndConverseToNumber(str) { var strDigitsOnly = str.toString().replace(/\D+/g, ''); // var num = BigInt(strDigitsOnly); // var num = str.toPrecision(100).split('.')[0]; if (typeof(num) === "bigint") { return num; } else { throw new TypeError("This is not number!"); } } var thousandSeparator = function (number) { var parts = (number ); var main = parts[0]; var len = main.length; var output = ''; var i = len - 1; while (i >= 0) { output = main.charAt(i) + output; if ((len - i) % 3 === 0 && i > 0) { output = ' ' + output; } --i; } if (parts.length > 1) { output += '.' + parts[1]; } return output; }; /* Начало --- Получение из строки только чисел и преобразовние из в тип * данных - number*/ // var numberStr = " 10#434!!!!@@@@++===()&(?23.23dfd2,25fg 4 "; var numberStr = " 123 43434 343 43434 3434 5410 "; //var numberStr = ""; $('.thousand').html(parseStrAndConverseToNumber(numberStr)).css({ 'color': 'blue', 'font-weight': 'bold' }); /* Конец --- Получение из строки только чисел и преобразовние из в тип * данных - number*/ var n = 123434343434343434345410; $('.thousand10').html(thousandSeparator(123434343434343434345410)).css({ 'color': 'blue', 'font-weight': 'bold' }); $('.thousand100').html(thousandSeparator(n)).css({ 'color': 'blue', 'font-weight': 'bold' }); $('.thousand1000').html(thousandSeparator(125434343431000)).css({ 'color': 'blue', 'font-weight': 'bold' }); </script> </body> </html> Как преобразовать очень большое число в строку? Метод toFixed() - не работает, toString() или String(var) - записывают результат в экспоненциальной форме. Вот такое число, 123434343434343434345410 , как преобразовать в строку ? И как выполнить преобразование строки в число, чтобы не было экспоненциальной формы записи ? Мне то в начале нужно преобразовать строку, убрать разделители и получить число, дальше положить число в JSON. Число будет положено в экспоненциальном формате, мне это не нужно. Когда число получаю из базы, его нужно преобразовать в строку, чтобы разделить на разряды и вывести в ячейке таблицы, на странице клиента. Большое число из базы , в метод приходит вот в таком виде 1.2343434343434343e+23 Как его преобразовать в строку в удобочитаемый вид , без потери точности ? А вот такая строка " 12 3434 343 3434 4343 23434 45410" , когда убираю разделители, нужно такую строку тоже преобразовать в число, но мне не нужно экспоненциальная форма, мне нужно на сервер отправить число не в экспоненциальном виде Как это сделать, чтобы и работало под старыми браузерами, например, IE 11. Что то типа toPresicion() или BigInt() - не будет работать. |
Цитата:
|
1234 3434 3434 3434 3
С этим то же нельзя ничего сделать, только строки ? |
вообщем думаю, что номера кредитных карт хранить только в строковом значении.
А вот такой максимум для вычисления прибыли думаю достаточно var numberStr = " 1 999 999 999 999 999 "; вряд ли у кого есть потребность вычислять такие суммы. Больше не получиться, так как при преобразовании уже видна погрешность /*выбираем из строки только числа, * перед тем как вернуть в точку вызова результат, * проверяем, что результат - имеет тип данных number; * parseInt() - преобразование строки в число; * num - число*/ function parseStrAndConverseToNumber(str) { var strDigitsOnly = str.toString().replace(/\D+/g, ''); var num = parseInt(strDigitsOnly); if (typeof(num) === "number") { return num; } else { throw new TypeError("This is not number!"); } } |
Цитата:
|
Часовой пояс GMT +3, время: 16:53. |