Atualmente, estou construindo um módulo de vendas para um site de clientes. Até agora, eu tenho o preço de venda para calcular perfeitamente, mas onde eu fiquei preso está formatando a saída para 2 casas decimais.
Atualmente, estou chamando isso de uma variável para que eu possa vincular os resultados a uma exibição de lista.
Sale = float.Parse(((x.Sale_Price - (x.Sale_Price * (x.Discount_Price / 100))).ToString())),
Alguém pode me mostrar como formatar a saída para 2 casas decimais? Muito Obrigado!
c#
variables
floating-point
decimal
Callum
fonte
fonte
Respostas:
Você pode passar o formato para o
ToString
método, por exemplo:Sequências de formato de número padrão
fonte
A primeira coisa que você precisa fazer é usar o
decimal
tipo em vez dosfloat
preços. O usofloat
é absolutamente inaceitável para isso, porque não pode representar com precisão a maioria das frações decimais.Depois de ter feito isso,
Decimal.Round()
pode ser usado para arredondar para 2 lugares.fonte
String.Format("{0:#,###.##}", value)
Um exemplo mais complexo de String Formatting in C # :
fonte
Acredito:
Deveria fazê-lo.
Consulte Exemplos de formato de string de link C #
fonte
fonte
Como já mencionado, você precisará usar um resultado formatado; que é feito através das
Write()
,WriteLine()
,Format()
, eToString()
métodos.O que não foi mencionado é o formato de ponto fixo, que permite um número especificado de casas decimais. Ele usa um 'F' e o número após o 'F' é o número de casas decimais emitidas, conforme mostrado nos exemplos.
fonte
Isso é para os casos em que você deseja usar seqüências de caracteres interpoladas . Na verdade, estou postando isso porque estou cansado de tentativa e erro e, eventualmente, percorrendo vários documentos toda vez que preciso formatar alguns escalares.
Aviso de desempenho
Sequências interpoladas são lentas. Na minha experiência, esta é a ordem (rápida a lenta):
value.ToString(format)+" blah blah"
string.Format("{0:format} blah blah", value)
$"{value:format} blah blah"
fonte