/
githubmirror
/
hexo
Обзор
Документация
Войти
/
githubmirror
/
hexo
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
lib/plugins/helper/number_format.ts
53 строки
1 KB
D-Sketon
chore(deps): bump hexo-fs from ^4.1.1 to ^4.1.3 (#5463)
16 апр 2024, 16:23
Не верифицирован
16 апр 2024, 16:23
cefee92
Код
Авторство
О чём код?
interface Options { delimiter?: string; separator?: string; precision?: number | false; } function numberFormatHelper(num: number, options: Options = {}) { const split = num.toString().split('.'); let before = split.shift(); let after = split.length ? split[0] : ''; const delimiter = options.delimiter || ','; const separator = options.separator || '.'; const { precision } = options; if (delimiter) { const beforeArr: string[] = []; const beforeLength = before.length; const beforeFirst = beforeLength % 3; if (beforeFirst) beforeArr.push(before.slice(0, beforeFirst)); for (let i = beforeFirst; i < beforeLength; i += 3) { beforeArr.push(before.slice(i, i + 3)); } before = beforeArr.join(delimiter); } if (precision) { const afterLength = after.length; let afterResult = ''; if (afterLength > precision) { const afterLast = after[precision]; const last = parseInt(after[precision - 1], 10); afterResult = after.substring(0, precision - 1) + (Number(afterLast) < 5 ? last : last + 1); } else { afterResult = after; for (let i = 0, len = precision - afterLength; i < len; i++) { afterResult += '0'; } } after = afterResult; } else if (precision === 0) { after = ''; } return before + (after ? separator + after : ''); } export = numberFormatHelper;