Your format model is almost there, but you probably want
So your decimal separator isn't hardcoded, it uses the NLS currency symbol and the first significant digit is populated.
I wouldn't NVL amount though - null is NOT zero!
Just remember that formatting is for display purposes, so when you talk about formatting the amount 'column' you are not doing that on the database table column itself, but only in the displayed data when you query it. The data on the database should always be of an appropriate number datatype, and the formatting on the table itself is irrelevant to how you choose to display it.
Feel free to take a read of the community document: PL/SQL 101 : DataTypes - NUMBER