Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

J. L. Gregorio

Arredondamento de Números reais

Recommended Posts

Salve comunidade IMasters....!Tenho um problema: Na hora de armazenar um valor real no banco de dados paradox, esse valor, mesmo usando a função formatfloat é armazenado por inteiro!!! por exemplo: num sistema de vendas, pego o valor total da venda e divido pelo número de parcelas, dá um valor quebrado. Arredondo ele usando o FormatFloat e depois reconvetendo para real usando StrToFloat na hora de manipular esse valor ele ainda aparece com um montão de casas decimais......! Teria alguma função para dividir um valor em parcelas iguais e arredondando esses valores!?Grato pela anteção!Abraços a todos!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia J. L.

 

Eu costumo arrendodar, obrigatoriamente, os números no sistema que uso. É um sistema de notas e as notas devem ser arredondadas para cima ou para baixo segundo determinadas sircunstâncias. Dá uma olhada no código que uso, deve valer pra você ou ao menos para você ter uma idéia. O arredondamento é feito no BeforePost

///////PORTUGUÊS//// TAB1PORTUGUES.AsFloat := (TAB1ATMB.AsFloat*3)+(TAB1OLMB.AsFloat*3))/5;//OPERAÇÃO EMTRE MÉDIAS BIMESTRAIS RESULTA NA MÉDIA DE PORTUGUÊS			if (TAB1PORTUGUES.asfloat- Int(TAB1PORTUGUES.asfloat)) >= 0.75 then			 TAB1PORTUGUES.asfloat :=	 TAB1PORTUGUES.asfloat + (1 - (TAB1PORTUGUES.asfloat - int(TAB1PORTUGUES.asfloat)));		   if (TAB1PORTUGUES.asfloat - Int(TAB1PORTUGUES.asfloat)) < 0.75 then		   if (TAB1PORTUGUES.asfloat- Int(TAB1PORTUGUES.asfloat)) >= 0.5 then			  TAB1PORTUGUES.asfloat :=	 TAB1PORTUGUES.asfloat - ((TAB1PORTUGUES.asfloat-int(TAB1PORTUGUES.asfloat))-0.5);		   if (TAB1PORTUGUES.asfloat - Int(TAB1PORTUGUES.asfloat)) < 0.5 then		   if (TAB1PORTUGUES.asfloat - Int(TAB1PORTUGUES.asfloat)) >= 0.25 then			  TAB1PORTUGUES.asfloat :=	  TAB1PORTUGUES.asfloat + (0.5 - (TAB1PORTUGUES.asfloat-int(TAB1PORTUGUES.asfloat)));		   if (TAB1PORTUGUES.asfloat -  Int(TAB1PORTUGUES.asfloat)) < 0.25 then			 TAB1PORTUGUES.asfloat :=	   TAB1PORTUGUES.asfloat - (TAB1PORTUGUES.asfloat - int(TAB1PORTUGUES.asfloat));		   if TAB1PORTUGUES.asfloat > 10.00 then			begin			 TAB1PORTUGUES.asfloat:= 10.00;			 TAB1PORTUGUES.asfloat:= TAB1PORTUGUES.asfloat;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.