¿Hay alguna manera de que pueda especificar una cadena de formato numérico estándar o personalizado para que siempre salga el signo, ya sea + ve o -ve (aunque no estoy seguro de lo que debería hacer para cero)
c#
.net
formatting
string-formatting
Craig Shearer
fuente
fuente
+#;-#
, para el valor 0 consigo sólo "+", sin real 0. para mí quiero 0 a aparecer como "0", por lo que esta obra:+#;-#;+0
.''
hará grandes cosas! Mira estoChanges.ToString("'('#' ▲)';'('#' ▼)';''")
:! ¡Me ahorró mucho tiempo y cientos deif
declaraciones! :)+0;-#
lugar de+#;-#;+0
Esta respuesta fue realmente engañosa para mí.Tenga cuidado, cuando se utiliza el formato condicional, el valor negativo no obtiene automáticamente un signo. Necesitas hacer
fuente
+0;-#
le da el mismo resultado con un código más limpio.También puede usar cadenas de formato en string.Format (); la cadena de formato se separa del índice con dos puntos (':')
Para el número {+1, -1, 0} esto da:
También puede usar una cadena interpolada en lugar de
string.Format
obtener el mismo resultado:fuente
+#;-#
formato para el valor 0+0;-#
. :)+#;-#;+0
más+#;-#
ya que esto hace que sea más claro que 0 se indicará como 0Al contrario de las otras respuestas, parece que si desea obtener +1, -1, +0 (para los argumentos 1, -1, 0) debe usar el formato:
o
Si usa solo
+#;-#
, se mostrará solo+
(no+0
) para 0.El especificador personalizado "#" (en https://msdn.microsoft.com/en-us/library/0c899ak8.aspx )
Además, tenga en cuenta que si necesita alguna precisión decimal, debe especificarla así:
o, si no quieres que siempre aparezcan ceros, así:
fuente
Para una expresión numérica de cualquier tipo:
Use tres partes para tres casos: positivo; negativo; cero
Otros aspectos del ejemplo:
Cero no está firmado. Puede hacer que se muestre como cualquier cosa, como "cero".
Los valores absolutos menores que uno tienen un 0 inicial antes del punto decimal. Ajustar al gusto.
El número de dígitos es para los valores decimales absolutos más grandes y más pequeños. Ajustar al gusto.
El carácter de punto decimal es específico de la cultura. .NET sustitutos.
Los separadores de agrupación son opcionales. El personaje es culturalmente específico. .NET sustitutos. (Las posiciones también son específicas de la cultura, pero eso solo está controlado por su cadena de formato). También usa cualquier otro carácter excepto los caracteres especiales para Formato (que incluyen,. # 0).
fuente
No puedo comentar, así que respondo aquí (sistema de reputación loco ...)
Puede usar number.ToString ("+ 0; - #") muy bien para producir el formato de tiempo de cadena UTC
Aquí se muestra en el código de PowerShell
Gracias @gcores https://stackoverflow.com/users/40256/gcores
fuente