c# - solo - Cadena de formato numérico personalizado para mostrar siempre el signo




string.format moneda c# (3)

Contrariamente a las otras respuestas, parece que si quieres obtener +1, -1, +0 (para los argumentos 1, -1, 0) necesitas usar el formato:

String.Format("{0:+#;-#;+0}", 0));  // output: +0

o

String.Format("{0:+0;-#}", 0));  // output: +0

Si usa simplemente +#;-# , mostrará solo + (no +0 ) para 0.

El "#" Custom Specifier (en https://msdn.microsoft.com/en-us/library/0c899ak8.aspx )

Tenga en cuenta que este especificador nunca muestra un cero que no sea un dígito significativo, incluso si cero es el único dígito en la cadena. Mostrará cero solo si es un dígito significativo en el número que se muestra.

También tenga en cuenta que si necesita precisión decimal, debe especificarla así:

String.Format("{0:+0.##;-#.##}", 0));  // output: +0

o, si quiere ceros para aparecer siempre, así:

String.Format("{0:+0.00;-#.00}", 0));  // output: +0.00

https://code.i-harness.com

¿Hay alguna manera de que pueda especificar una cadena de formato numérico estándar o personalizada para que siempre se emita el signo, ya sea + ve o -ve (aunque no estoy seguro de qué debería hacer para cero).


Sí tu puedes. Hay un formateo condicional. Consulte Formato condicional en MSDN

p.ej:

string MyString = number.ToString("+0;-#");

Donde cada sección separada por punto y coma representa números positivos y negativos

o:

string MyString = number.ToString("+#;-#;0");

si no desea que el cero tenga un signo más.


Tenga cuidado, cuando utiliza el formato condicional, el valor negativo no recibe automáticamente un signo. Necesitas hacer

string MyString = number.ToString("+#;-#;0");




string-formatting