mango-v4-ui/utils/numbers.ts

45 lines
1.2 KiB
TypeScript

const digits2 = new Intl.NumberFormat('en', { maximumFractionDigits: 2 })
const digits6 = new Intl.NumberFormat('en', { maximumFractionDigits: 6 })
const digits9 = new Intl.NumberFormat('en', { maximumFractionDigits: 9 })
export const formatDecimal = (
value: number,
decimals: number = 6,
opts = { fixed: false }
) => {
if (opts?.fixed) return value.toFixed(decimals)
if (decimals === 2) return digits2.format(value)
if (decimals === 6) return digits6.format(value)
if (decimals === 9) return digits9.format(value)
}
export const numberFormat = new Intl.NumberFormat('en', {
maximumSignificantDigits: 7,
})
const numberFormatter2 = Intl.NumberFormat('en', {
minimumFractionDigits: 2,
maximumFractionDigits: 2,
})
const numberFormatter4 = Intl.NumberFormat('en', {
minimumFractionDigits: 4,
maximumFractionDigits: 4,
})
const numberFormatter6 = Intl.NumberFormat('en', {
minimumFractionDigits: 6,
maximumFractionDigits: 6,
})
export const formatFixedDecimals = (value: number) => {
if (value >= 100) {
return numberFormatter2.format(value)
} else if (value >= 1) {
return numberFormatter4.format(value)
} else {
return numberFormatter6.format(value)
}
}