<!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() - не будет работать.