Molti non sanno che e' possibile utilizzare String.Format (o meglio la stringa di formattazione, in quanto tutto questo e' applicabile anche anche ai metodi Write e WriteLine della classe Console) per formattare il dato diversamente a seconda che il valore della variabile associata sia positivo, negativo oppure uguale a zero.


double x=12;
string s=String.Format("Il valore e' {0:Positivo;Negativo;Nullo}",x);
x=0;
s=String.Format("Il valore e' {0:Positivo;Negativo;Nullo}",x);
x=-1.234;
s=String.Format("Il valore e' {0:Positivo;Negativo;Nullo}",x);
s=String.Format("Il valore e' {0:0.00;-0.00;-}",x); // s=-1.23

In pratica utilizzando ";" e' possibile definire diversi format a seconda del segno della variabile, nell'esempio riportato la prima e' relativa ai valori positivi, la seconda a quelli negati e la terza al valore zero.
Se le sezioni sono due, la prima e' per i valori positivi e uguale a zero, la seconda per quelli negativi.

Il tutto e' applicabile anche alla ToString, ovvero: string s2=x.ToString("0.000;-0.00");

Insomma un modo pratico per evitare un sacco di if(){}