разделить число на классы, упрощенная запись
как разделить допустим число 16000 на 16 000, чтоб оно было числом, а не строкой?
и ещё разделить число по классам k - 000 M - 000 000 G - 000 000 000 допустим у нас 18000, отображается 18k ? |
Цитата:
var num = 16 000; Выполняя этот код смотрите в консоль. Что она сообщает? Какой вывод из этого? |
Цитата:
|
если так? и его как-то упростить?
<script> function N() { var K=document.getElementById('16').innerHTML; if (K>=1000) { q=Math.round((K/1000)); w=q+"k"; } else if (K>=1000000) { q=Math.round((K/1000000)); w=q+"M"; } else if (K>=1000000000) { q=Math.round((K/1000000000)); w=q+"G"; } } </script> |
вариант 2
var str = "3830000"; q=str.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 '); результат: q=3 830 000 НО! q - строка, как её числом сделать, назад? |
Цитата:
|
Цитата:
var a = 16000; alert(a.toLocaleString("ru"));Это означает, что вы работаете с числом в виде типа Number, а когда его нужно вывести, например, в интерфейсе программы, то вы будете использовать метод toLocaleString у числа. Если же вам нужно, например, выводить форматированное число в поле ввода или сохранять его на диск, то вам понадобится его обратно перевести в число. Для этого можно например сконструировать новый тип SeparatedNumber. class SeparatedNumber extends Number { constructor(string) { super(String(string).replace(/\s/g, "")); } toString(base) { const string = super.toString(base); return string.replace(/([\da-z]{1,3})(?=(?:[\da-z]{3})+(?:\..*|$))/g, "$1 "); } } // пример var a = new SeparatedNumber(16000); alert(a); // пример var b = new SeparatedNumber("18 000"); alert(b);С типом SeparatedNumber вы можете работать как с обычным числом, однако в тех местах, где нужно строковое представление, этот тип будет автоматически форматироваться. Цитата:
Цитата:
function formatNumber(number) { var x = ["", "k", "M", "G", "T"], i = 0; while(number >= 1000 && i++ < x.length) number /= 1000; return number.toLocaleString("en", { maximumFractionDigits: 1 }) + x[i]; } // пример var a = 16000; alert(formatNumber(a)); |
спасибо :)
|
Часовой пояс GMT +3, время: 08:15. |