I have a working website, where I use this expression everywhere.
price.ToString(\"C\")
It currently shows 2 decimal places, eg. $1.45
Can you overwrite thread's CurrentCulture and set CurrencyDecimalDigits?