Search code examples
c#currencystring.format

Need a custom currency format to use with String.Format


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.


Solution

  • 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.