Como formatar a Double
para a String
em C # para ter apenas duas casas decimais?
Se eu usar String.Format("{0:0.00}%", myDoubleValue)
o número, ele será arredondado e eu quero um truncado simples, sem arredondamento. Eu também quero que a conversão String
seja sensível à cultura.
Respostas:
Eu uso o seguinte:
Por exemplo:
Se o número for 50.947563 e você usar o seguinte, ocorrerá o seguinte:
E sua resposta está truncada. Agora, para formatar a sequência, faça o seguinte:
fonte
string.Format
etapa que formata a sequência. Veja minha resposta abaixo.O seguinte arredonda os números, mas mostra apenas duas casas decimais (removendo os zeros à direita), graças a
.##
.http://dobrzanski.net/2009/05/14/c-decimaltostring-and-how-to-get-rid-of-trailing-zeros/
fonte
Sugiro que você trunque primeiro e depois formate:
Use a constante 100 para 2 dígitos truncados; use 1 seguido de tantos zeros quanto dígitos após o ponto decimal desejado. Use o nome da cultura necessário para ajustar o resultado da formatação.
fonte
new CultureInfo("de-DE")
, você deve usar a propriedade estáticaCulture.InvariantCulture
Método mais simples, use seqüências de caracteres numéricas:
fonte
eu uso
price.ToString("0.00")
para obter os 0s principaisfonte
A função c #, como expressa por Kyle Rozendo:
fonte
Que tal adicionar um decimal extra que deve ser arredondado e descartado:
fonte
Isso está funcionando para mim
fonte
Eu sei que este é um tópico antigo, mas eu apenas tive que fazer isso. Enquanto as outras abordagens aqui funcionam, eu queria uma maneira fácil de afetar muitas ligações para
string.format
. Portanto, adicionar aMath.Truncate
todas as chamadas não foi realmente uma boa opção. Além disso, como parte da formatação é armazenada em um banco de dados, a situação é ainda pior.Assim, criei um provedor de formato personalizado que me permitia adicionar truncamento à string de formatação, por exemplo:
A implementação é bastante simples e é facilmente extensível a outros requisitos.
fonte
Eu tive esse problema com o Xamarin Forms e o resolvi com isso:
fonte
Para o que vale a pena, para mostrar a moeda, você pode usar
"C"
:Resultado:
$1.99
fonte
Você também pode escrever seu próprio IFormatProvider , embora suponha que eventualmente você precise pensar em uma maneira de fazer o truncamento real.
Pelo menos, seria facilmente reutilizável.
Há um artigo sobre como implementar seu próprio IFormatProvider / ICustomFormatter aqui no CodeProject . Nesse caso, "estender" um formato numérico existente pode ser a melhor aposta. Não parece muito difícil.
fonte
A seguir pode ser usado apenas para exibição que usa a propriedade String.
fonte
Solução:
fonte
Observe também a CultureInformation do seu sistema. Aqui a minha solução sem arredondar.
Neste exemplo, você apenas precisa definir a variável MyValue como double. Como resultado, você obtém seu valor formatado na variável de sequência NewValue .
Nota - Defina também o C # usando a instrução:
fonte