string formatting question

  • Thread starter Thread starter Tenacious
  • Start date Start date
T

Tenacious

Can anyone tell me why strSpd2 in the example below ends up being a
blank string when formatting a zero value? It would seem to me that
strSpd2 should end up being "0.0"

double val1 = 14.38009
double val2 = 0.0;
string strSpd1 = "";
string strSpd2 = "";


// This formats correctly. strSpd1 = "14.4"
strSpd1 = String.Format("{0:##.#}", val1);


// This does not format. strSpd2 = "" Why is this blank and not "0.0"
strSpd2 = String.Format("{0:#.#}", val2);
 
Tenacious said:
Can anyone tell me why strSpd2 in the example below ends up being a
blank string when formatting a zero value? It would seem to me that
strSpd2 should end up being "0.0"

double val1 = 14.38009
double val2 = 0.0;
string strSpd1 = "";
string strSpd2 = "";


// This formats correctly. strSpd1 = "14.4"
strSpd1 = String.Format("{0:##.#}", val1);


// This does not format. strSpd2 = "" Why is this blank and not "0.0"
strSpd2 = String.Format("{0:#.#}", val2);

If you look at the documentation on formatting and the # format
character, you'll find the following information:

"Note that this specifier never displays the '0' character if it is not
a significant digit, even if '0' is the only digit in the string."

Use strSpd2 = String.Format("{0:0.0}", val2); instead.
 
Back
Top