[SOLVED] Formatting numbers from WEI

Has anyone got a nice way to format the numbers returned by the getTokenBalances function?

{name: “PolyDoge”, symbol: “PolyDoge”, logo: null, thumbnail: null, decimals: “18”, balance: “3104546958823671965056305304558” }

“3104546958823671965056305304558”

These balances return numbers so big, that I’m having issues trying to format them down to comma spaces and decimal.

This is what it should look like: 3,104,546,958,823.671965056305304558

Maybe someone has a clever trick.

Moralis.Units.FromWei('3104546958823671965056305304558')
=>
3104546958823.672
1 Like
let options = { chain: 'polygon', address: walletAddress}
let balances = await Moralis.Web3API.account.getTokenBalances(options);
const resultBalance = balances.find( ({ token_address }) => token_address === contractAddress );
const resultBalanceNumber = resultBalance.balance
const balanceIntl = Intl.NumberFormat('en-US').format(resultBalanceNumber.substring(0, resultBalanceNumber.length - 18))
`${balanceIntl}`

OUTPUT: 3,104,546,958,823

I’ll try your way now.

const options = { chain: 'polygon', address: walletAddress}
const balances = await Moralis.Web3API.account.getTokenBalances(options);
const resultBalance = balances.find( ({ token_address }) => token_address === contractAddress );
const resultBalanceNumber = Moralis.Units.FromWei(resultBalance.balance)
const balanceIntl = Intl.NumberFormat('en-US').format(resultBalanceNumber)
console.log(balanceIntl)

OUTPUT: 3,104,546,958,823.67

That’ll work better. Thanks!