Números Multiplos

Delphi

08/01/2004

PESSOAL, ME AJUDEM

TENHO UM PROGRAMA DE VENDAS ONDE UM PRODUTO É VENDIDO POR METRO QUADRADO

EXEMPLO:

PRODUTO 01
VALOR POR METRO QUADRADO: R$ 7,80

PARA ACHAR O VALOR DO METRO QUADRADO MULTIPLO LARGURA X ALTURA QUE É QUANTIDADE DE METRO QUADRADO

EXEMPLO

LARGURA = 1251 MILIMETROS
ALTURA = 533 MILIMETROS
VALOR ENCONTRATO = 666.783

PARA ACHAR O VALOR EM METRO QUADRADO DIVIDO POR 10.000

666.783 / 10.000 = 66.6783 (ARREDONDO PARA 66.67)

ATÉ AI TUDO BEM.

AGORA E QUE VEM O PROBLEMA

ESSE PRODUTO SO É VENDIDO EM MULTIPLOS DE 5 CENTIMETROS, OU SEJA, O VALOR ENCONTRADO ACIMA (66.67 M2) TERIA QUE SER ARREDONTADO PARA (66.70 M2) QUE É O PRÓXIMO MULTIPLO DE 5.

COMO FAÇO?

EU PRECISO CHECAR SE O VALOR ENCONTRADO É MULTIPLO DE 5, SE NÃO FOR TENHO QUE ARREDONDAR PARA O PRÓXIMO NÚMERO MULTIPLO DE 5 QUE SERIA 66.70.

AJUDEM POR FAVOR

[color=green:c1bb2395f8]Titulo editado conforme previsto nas regras de conduta - Regra 2[/color:c1bb2395f8]


Emerson.silva

Emerson.silva

Curtidas 0

Respostas

Fabio.hc

Fabio.hc

08/01/2004

Tente assim:

function TForm1.Multiplo5(valor: double): double;
var num1, num2:double;
begin
   num1:=(valor*100)/5;
   num2:=trunc(num1);
   if num1 <> num2 then
      num1:=num1-num2
   else
      num1:=0;

   if num1<>0 then
      num1:=(5 - (num1 * 5));

   result:=((valor*100) + num1) / 100;
end;



GOSTEI 0
POSTAR