GARANTIR DESCONTO

Fórum Arredondamento de Valores #164735

05/06/2003

0

Caros colegas tenho um pequeno problema que não consigo resolver, se alguem puder me ajudar.

Tenho uma multiplicação da seguinte forma:

Qtde= 6
Preço Bruto = 117,82
Desconto = 80,31
O preço liquido é = Preco Bruto - Desconto que da = 23,19876

Eu gostaria de pegar somente o valor 23,19 e gravar no banco paradoxo

Grato pela atenção


Fernando

Fernando

Responder

Posts

05/06/2003

Miller

Fernando, vc pode multiplicar o vlr por 100, truncar o novo vlr e dividi-lo por 100. Se vc quizer mais casas decimais basta multiplicar por 1000, 10000 ...


Responder

Gostei + 0

05/06/2003

Kaybueno

Olá! Td bem?!

Quem sabe não posso te ajudar.
Se vc quer o valor arredondado para duas casas decimais, pode definir a variável do resultado como double. Fiz um programa onde pegava números grandes para multiplicação, mas queria que o resultado fosse arredondado. Depois vc converte para string.
Olha o código que fiz, nas partes principais:

var OP1, Result1: double
A: string [12];

{ele pega o OP1, que é um valor do bd com 4 casas após a virgula e multiplica pelo numero qualquer q digito numa cx de texto, dai ele converte para string, é aí q está o segredo, veja}

Str(Result1:12:2,A); { onde vc vê o 2, é onde vc define 2 casas}


Depois vc grava esse valor em um BD.

Ou pode tentar usar o código abaixo:

Arredonda as casas decimais de um valor Float

function Arredonda(Valor : Real Decimais : Byte) : Extended;
var
i : Byte;
ML : string;
RR : string;
begin
ML := ´0.´;
for i := 1 To Decimais do
begin
ML := ML + ´0´;
end;
RR := FormatFloat(ML,Valor);
Result := StrToFloat (RR);
end;

Ou este aqui:

Quando houver,Arredonda uma possivel terceira casa decimal em uma variável

function RoundNum(Valor:Extended;Decimais:Integer):Extended;
var
I:Integer;
Multiplicador:Integer;
begin
if Decimais > 15 then
begin
Decimais := 15;
end
else if Decimais < 0 then
begin
Decimais := 0;
end;
Multiplicador := 1;
for I:=1 to Decimais do
begin
Multiplicador := Multiplicador*10;
end;
Result := round(Valor*Multiplicador)/Multiplicador;
end;

Espero q dê certo :wink:

Até mais...


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar