import Big from 'big.js'; export const roundUpWithoutDecimal = (n: number): number => Math.ceil(n); export const roundDownWithoutDecimal = (n: number): number => Math.floor(n); export const roundNumberWithDecimal = (n: number, r: number): number => new Big(n).round(r).toNumber(); function getDivisor(num: number): number { if (num >= 1000000 || num >= 500000) return 1000; if (num >= 100000 || num >= 10000) return 100; if (num >= 1000) return 10; return 1; } export function roundDownNumberSmart(num: number): number { const divisor = getDivisor(num); return Math.floor(num / divisor) * divisor; } export function roundUpNumberSmart(num: number): number { if (num <= 1) { return num; } else if (num <= 50) { return Math.ceil(num / 5) * 5; } else if (num <= 500) { return Math.ceil(num / 50) * 50; } else { return Math.ceil(num / 100) * 100; } }