Existe alguma maneira de especificar uma string de formato numérico padrão ou personalizado para sempre exibir o sinal, seja + ve ou -ve (embora o que deva fazer para zero, não tenho certeza!)
c#
.net
formatting
string-formatting
Craig Shearer
fonte
fonte
+#;-#
, pelo valor 0 I obter apenas "+", sem real 0. para mim eu quero 0 a aparecer como "0", então isso funciona:+#;-#;+0
.''
fará grandes coisas! Veja istoChanges.ToString("'('#' ▲)';'('#' ▼)';''")
:! Isso me salvou muito tempo e centenas deif
declarações! :)+0;-#
vez de+#;-#;+0
Esta resposta foi realmente enganosa para mim.Cuidado, ao usar a formatação condicional, o valor negativo não recebe automaticamente um sinal. Você precisa fazer
fonte
+0;-#
fornece o mesmo resultado com um código mais limpo.Você também pode usar seqüências de caracteres de formato em string.Format (); a string de formato é separada do índice com dois pontos (':')
Para o número {+1, -1, 0}, isso fornece:
Você também pode usar uma sequência interpolada em vez de
string.Format
obter o mesmo resultado:fonte
+#;-#
formato para o valor 0+0;-#
. :)+#;-#;+0
mais,+#;-#
pois isso deixa mais claro que 0 será formatado como +0Ao contrário das outras respostas, parece que se você deseja obter +1, -1, +0 (para argumentos 1, -1, 0), precisa usar o formato:
ou
Se você usar apenas
+#;-#
, será exibido apenas+
(não+0
) para 0.O especificador personalizado "#" (em https://msdn.microsoft.com/en-us/library/0c899ak8.aspx )
Além disso, lembre-se de que, se você precisar de precisão decimal, precisará especificá-la assim:
ou, se você não deseja que zeros sempre apareçam, assim:
fonte
Para uma expressão numérica de qualquer tipo:
Use três partes para três casos: positivo; negativo; zero
Outros aspectos do exemplo:
Zero não está assinado. Você pode mostrar isso como qualquer coisa, como "zero".
Valores absolutos menores que um têm um 0 à esquerda antes do ponto decimal. Ajuste a gosto.
O número de dígitos corresponde aos maiores e menores valores decimais absolutos. Ajuste a gosto.
O caractere de ponto decimal é específico da cultura. Substitutos do .NET.
Os separadores de agrupamento são opcionais. O personagem é específico da cultura. Substitutos do .NET. (As posições também são específicas da cultura, mas são controladas apenas pela string de formato.) Você também usa qualquer outro caractere, exceto os caracteres especiais para Format (que incluem,. # 0).
fonte
Não posso comentar, então eu respondo aqui (sistema de reputação nuts ...)
Você pode usar number.ToString ("+ 0; - #") muito bem para produzir a string UTC TimeFormat
Aqui mostrado no código do PowerShell
Obrigado @gcores https://stackoverflow.com/users/40256/gcores
fonte