Ir para conteúdo
Fórum Script Brasil
  • 0

:Currency com 2 casas decimais


Frega

Pergunta

Boa tarde pessoal, queria saber como transformar valores currency que usam 4 casas decimais para só 2 casas, e manter o resultado como Currency

tentei usar

CurrencyDecimals:=2; os campos currency continuam com 4 casas, para aplicar essa propriedade ali tenho que usar Format('%m',[campoCurrency] ai ele vai transformar o Currency em duas casas decimais, porém, String;

o problema é que tenho preço bruto e liquido, exemplo: preço bruto 185,00 após aplicado descontos o preço liquido que deveria ser R$180,06 fica como R$180,0648, e se tiver muita quantidade desse produto, por exemplo 20 ou 30 da uma enorme diferença:

180,06x30=R$5,401.80

180,0648x30=R$5,401.94

a diferença de 2 para 4 casas decimais chegam a R$0,15 em 30 produtos

preciso que na hora de aplicar os descontos e passar para SubTotal ele calcule a quantidade X precoliquido com só duas casas !

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

Frega, esse valor quando for mostrado vai ser feito apenas o arredondamento dos valores o resultado final vai sempre o mesmo mas de toda forma segue alguns formas para mostrar a quantidade de casas decimais dejesadas:

Edit1.text:= floatTostrF(CampocomoValor,ffcurrency,10,2);

Edit1.Text := CurrToStrF(StrToCurrDef(Trim(Edit1.Text),0),ffNumber,2);

para mostrar com 4 casas decimais basta usar 4 no local do 2;

ver se é isso que você precisa.

Link para o comentário
Compartilhar em outros sites

  • 0

acho que vou ter que fazer asim mesmo

Transformar currency 180,0648 para string, cortar as casas decimais, e depois passar de string para currency denovo, já com o valor arredondado, 180,06

isso é uma gambiarra mas funciona, o ideal seria conseguir cortar ou zerar as duas ultimas casas decimais 180,0648 preservando o valor em Currency ao invez de ter de que fazer Currency->String->Currency

Editado por Frega
Link para o comentário
Compartilhar em outros sites

  • 0

Frega, eu não diria que é uma gambiarra e sim um forma de contornar uma coisa que foi iniciada da forma errada, verifique se tipo campo que foi criada é numérico, pois é a forma correta trabalhar valores numérico onde você pode utilizar como Integer ou Float.

Link para o comentário
Compartilhar em outros sites

  • 0

Sim eu uso e o rxlib usei tal componente mas na hora de imprimir o holerite ele aparece o valor sem a virgula e eu preciso da virgula.

E tambem eu preciso que ele some os cambos no evento OnChange dos Currency edits finais eu consigo somar eles?

Editado por nicolasbraz
Link para o comentário
Compartilhar em outros sites

  • 0

Sim eu uso e o rxlib usei tal componente mas na hora de imprimir o holerite ele aparece o valor sem a virgula e eu preciso da virgula.

E tambem eu preciso que ele some os cambos no evento OnChange dos Currency edits finais eu consigo somar eles?

Na propriedade DisplayFormat coloque

R$ ,0.00;-R$ ,0.00 ou

,0.00;-,0.00

o numero ira aparecer dessa maneira 1.234,50

eu preciso que ele some os cambos no evento OnChange dos Currency

Eu aconselho a não somar no evento OnChange, embora seja possivel faze-lo

Voce pode somar os currency de preferencia em um botão de calculo

procedure TForm1.Button1Click(Sender: TObject);
begin
   CurrencyEdit1.Value := 0;
   CurrencyEdit1.Value := CurrencyEdit2.Value + CurrencyEdit3.Value;
end;

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...