Need a custom currency format to use with String.Format

Notorious2tall picture Notorious2tall · Feb 12, 2009 · Viewed 23.2k times · Source

I'm trying to use String.Format("{0:c}", somevalue) in C# but am having a hard time figuring out how to configure the output to meet my needs. Here are my needs:

  1. 0 outputs to blank
  2. 1.00 outputs to $1.00
  3. 10.00 outputs to $10.00
  4. 100.00 outputs to $100.00
  5. 1000.00 outputs to $1,000.00

I've tried String.Format("{0:c}", somevalue) but for zero values it outputs $0.00 which is not what I want. I've also tried String.Format("{0:$0,0.00;$(0,0.00);#}", somevalue), but for 1.0 it outputs $01.00. String.Format("{0:$0.00;$(0.00);#}", somevalue) works for most cases, but when somevalue is 1000.00 the output is $1000.00.

Is there some format that will fit all 5 cases above? All of the documentation I've read only details the basics and doesn't touch on this type of scenario.

Answer

DavGarcia picture DavGarcia · Feb 12, 2009

If you use

string.Format("{0:$#,##0.00;($#,##0.00);''}", value)

You will get "" for the zero value and the other values should be formatted properly too.