diff --git a/apps/web/src/composables/format.ts b/apps/web/src/composables/format.ts index 9243bd48e..5311f1c25 100644 --- a/apps/web/src/composables/format.ts +++ b/apps/web/src/composables/format.ts @@ -17,13 +17,27 @@ export default function useFormat() { function formatNumber(number: number) { const SI_SYMBOL = ['', 'K', 'M', 'B', 'T', 'P', 'E'] - const tier = Math.log10(Math.abs(number)) / 3 | 0 - if(tier === 0) return number.toFixed(2) - const suffix = SI_SYMBOL[tier] - const scale = Math.pow(10, tier * 3) - const scaled = number / scale - return scaled.toFixed(2) + suffix + const tier = Math.floor(Math.log10(Math.abs(number)) / 3) + let scale, scaled, suffix + + if (number === 0) { + return '0.00' + } else if (Math.abs(number) < 1) { + // Find the position of the first non-zero digit after the decimal point + const decimalPlaces = Math.ceil(-Math.log10(Math.abs(number))) + // Limit to 6 decimal places + const fixedDecimals = Math.min(decimalPlaces, 6) + return number.toFixed(fixedDecimals) + } else if (tier === 0) { + return number.toFixed(2) + } else { + suffix = SI_SYMBOL[tier] + scale = Math.pow(10, tier * 3) + scaled = number / scale + return scaled.toFixed(2) + suffix + } } + function trimAndLowercaseAddress(address: string) { return address.trim().toLowerCase()