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);
Tom Porterfield - 06 Dec 2007 18:01 GMT
> 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
[quoted text clipped - 10 lines]
> // 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.

Signature
Tom Porterfield
Ole - 06 Dec 2007 20:02 GMT
Or use:
string strSpd2 = val2.ToString("0.0#");
BR,
Ole
> 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
[quoted text clipped - 10 lines]
> // This does not format. strSpd2 = "" Why is this blank and not "0.0"
> strSpd2 = String.Format("{0:#.#}", val2);