/ / Consiga os mesmos resultados com ToString () como com String.Format - c #, formatting

Consiga os mesmos resultados com ToString () como com String.Format - c #, formatting

Não consigo descobrir como implementar essa tarefa:

Eu preciso formatar um decimal como este

 var formatted = String.Format("{0:G}%", numberOfDecimalType);

Portanto, o resultado deve ser um número numérico formatado com um sinal% à direita. O problema é que eu preciso obter esse resultado usando .ToString() método. Eu tentei numberOfDecimalType.ToString("G%") e diferentes outras variantes, mas não ajudou

É possível?

Respostas:

3 para resposta № 1

Você pode adicionar caracteres literais usando um string de formato numérico personalizado:

var formatted = numberOfDecimalType.ToString(@"#,##0.##%");

A barra invertida garante que % é tratado como um caractere literal em vez de uma instrução de formatação especial.

Note, entretanto, que isto não é um exato substituição de G, ou seja, você pode precisar ajustar o número de #s para acomodar o número necessário de casas decimais.


3 para resposta № 2

Você não será capaz de acrescentar o "%" ao final usando um único ToString ligar; você precisará formatar o decimal usando ToString e, em seguida, anexe o sinal de porcentagem separadamente:

var formatted = numberOfDecimalType.ToString("G") + "%";

2 para resposta № 3

Você poderia simplesmente acrescentar o percentual, não poderia?

formatted = numberOfDecimalType.ToString("G") + "%";