¿Hay alguna manera en que pueda especificar una cadena de formato numérico estándar o personalizada para generar siempre el signo, ya sea + ve o -ve (aunque lo que debería hacer es cero, I ' m no estoy seguro!)Cadena de formato numérico personalizado para mostrar siempre el signo
Respuesta
Sí, puedes. Hay un formateo condicional. Ver Conditional formatting in MSDN
por ejemplo:
string MyString = number.ToString("+0;-#");
donde cada sección separados por un punto y coma representa números positivos y negativos
o:
string MyString = number.ToString("+#;-#;0");
si no desea que el cero a tener un signo más.
Tenga cuidado, cuando se utiliza el formato condicional, el valor negativo no recibe automáticamente un signo. Debe hacer
string MyString = number.ToString("+#;-#;0");
Como otros señalaron, '+0; - #' le da el mismo resultado con un código más limpio. – Andrew
También puede usar las cadenas de formato en cadena.Formato(); la cadena de formato se separa del índice con dos puntos (':')
string MyString = string.Format("Default format {0}, Force sign {0:+#;-#;+0}, No sign for zero {0:+#;-#;0}.", number);
Para el número = {1, -1, 0}, esto da -
formato predeterminado 1, Fuerza signo 1, n firmar para cero +1.
Formato predeterminado -1, Forzar signo -1, No hay signo de cero -1.
Formato predeterminado 0, signo de fuerza +0, no hay signo para cero 0.
La última línea de su respuesta debería decir "Formato predeterminado 0, signo de la fuerza +, no hay signo de cero 0." porque ese es el resultado real del formato '' '+ #; - #' '' para el valor 0 –
Gracias, Kamil - Me lo perdí. Ahora he corregido el formato del signo de fuerza: + #; - #; + 0 (en lugar de + #; - #) – Edward
Puede obtener el comportamiento del signo de fuerza con un formato más simple: '+0; - #'. :) – Andrew
Al contrario de las otras respuestas, parece que si quieres obtener +1, -1, +0 (para los argumentos 1, -1, 0) es necesario utilizar el formato:
String.Format("{0:+#;-#;+0}", 0)); // output: +0
o
String.Format("{0:+0;-#}", 0)); // output: +0
Si utiliza simplemente +#;-#
se mostrará simplemente +
(no +0
) para 0.
El "#" Custom Especificador (en https://msdn.microsoft.com/en-us/library/0c899ak8.aspx)
Tenga en cuenta que este especificador nunca se muestra un cero que no es una cifra significativa, incluso si el 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.
Además, por favor tenga en cuenta que si necesita alguna precisión decimal es necesario especificar que de esa manera:
String.Format("{0:+0.##;-#.##}", 0)); // output: +0
o, si quieres probar ceros para mostrar siempre, al igual que:
String.Format("{0:+0.00;-#.00}", 0)); // output: +0.00
- 1. Cómo mostrar el teclado numérico
- 2. python: ¿diccionario a cadena, formato personalizado? Sólo
- 3. Mostrar cadena con formato HTML
- 4. Formato numérico en Scala?
- 5. Formato personalizado para el comando de hora
- 6. ¿Mostrar el icono personalizado para el control personalizado?
- 7. ¿Cómo convierto un valor numérico de cadena con un signo de dólar a BigDecimal en Java?
- 8. un decimal para el formato de cadena
- 9. C#: ¿cómo forzar el cero al final en una cadena de formato numérico?
- 10. Formato de moneda para mostrar
- 11. Entrena el formato de cadena utilizado para el formato DateTime
- 12. ¿DateTime.ToString ("s") devuelve siempre el mismo formato?
- 13. cómo mostrar un teclado numérico
- 14. Cadena de formato por CultureInfo
- 15. Usando el formato de cadena .NET, ¿cómo formateo una cadena para mostrar en blanco (cadena vacía) para cero (0)?
- 16. Cambio de formato de fecha y hora en formato numérico
- 17. Soportar ToString (formato de cadena) con tipo de número personalizado
- 18. conversión de cadena a numérico
- 19. Tiempo en segundos para el formato de cadena personalizada
- 20. formato de cadena para números o divisa?
- 21. Mostrar siempre niceScroll rail
- 22. ¿Cómo mostrar siempre un objeto BigDecimal en formato decimal completo en lugar de notación científica?
- 23. Formato numérico en Highcharts Chart Values?
- 24. emacs/elisp: ¿Para qué se utiliza el símbolo hash (libra, signo numérico, octothorp)?
- 25. ¿Puedo obtener el formato de moneda estándar para usar un signo negativo en lugar de paréntesis?
- 26. Convertir cadena al campo numérico
- 27. Cómo convertir .NET cadena de formato estándar a cadena de formato de Excel
- 28. preg_replace - elimina los caracteres no deseados de la cadena para devolver el valor numérico
- 29. Haga que el signo más una cadena en java
- 30. Formato de lista pedido personalizado
Se corrigió un error por el cual los negativos no obtenían un signo menos. –
¡Muchas gracias! He estado revolviendo mi cabeza durante una hora para averiguar qué es el equivalente del '+' - flag de printf en C# y me has dado LA respuesta. – rbaleksandar
con '+ #; - #', para el valor 0 obtengo simplemente "+", sin 0. Para mí, quiero que 0 aparezca como "+0", así que esto funciona: '+ #; - #; + 0'. –