@ithinkdt/core
Version:
iThinkDT Core
13 lines (12 loc) • 586 B
JavaScript
/* eslint-disable unicorn/prefer-string-replace-all */
export function number(num, digits = 2, split = ',', trim = true) {
if (num === undefined || num === null) return ''
const n = typeof num === 'number' ? num : Number(num)
if (Number.isFinite(n) && Number.isFinite(digits)) {
const [int, digit = ''] = n.toFixed(digits).split('.')
const _dight = trim ? digit.replace(/0/g, ' ').trimEnd().replaceAll(/\s/g, '0') : digit
return `${int.replace(/(\d)(?=(?:\d{3})+$)/g, `$1${split}`)}${_dight ? '.' : ''}${digit}`
} else {
return n
}
}