Moralis wrong erc20 return from api

Hey there,
I have 6$ in Shiba erc20 tokens. Moralis says that it has 600000945894485300000000 and 18 decimals.
When I enter this in my approve ERC20 function. The wrong amount gets approved for some reason. Why is that ?
It only happens with this token that has so huge values.

anyone can help me here ?

The amount mentioned here is the balance in wei, not in $, you need to fetch the price of 1 unit of the token to calculate the required value.