Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 719
Notorious2tall Avatar asked Feb 12 '09 18:02

Notorious2tall


2 Answers

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.

like image 142
DavGarcia Avatar answered Oct 23 '22 15:10

DavGarcia


Try something like this:

String currency = (number == 0) ? String.Empty : number.ToString("c");
like image 24
Andrew Hare Avatar answered Oct 23 '22 16:10

Andrew Hare