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?
You can't modify the default behavior of the format specifier, but you can do a a global search-and-replace in your project. Assuming you're using Visual Studio, you can do a global search-and-replace (Ctrl-Shift-H) and replace .ToString("C")
with .ToString("C4")
.