Nem o processador e muito menos a linguagem podem tratar isto de forma
nenhuma. Lembre-se que o Pascal é uma linguagem de cunho científico. Uma
linguagem científica não fazer isto de jeito nenhum. Seria a mesma coisa que
você colocar uma imagem do demônio dentro de uma igreja.

Quem tem que fazer isto É O PROGRAMADOR

Eu uso esta função abaixo que tem me dado ótimos resultados:


Function Arredonda( Valor : Double ) : Currency; StdCall;
//
// Arredonda um valor float
//
begin
  result := (Round((Valor + 0.00001) * 100) / 100);
end; 

 
 
 []s

 Walter Alves Chagas Junior
 Projeto e desenvolvimento
 Telemont Engenharia de telecomunicações
 [EMAIL PROTECTED]
 Fone: (31) 3389-8215 Fax: (31) 3389-8200
 
 

> -----Mensagem original-----
> De: Williams Diaz [mailto:[EMAIL PROTECTED]
> Enviada em: quarta-feira, 17 de novembro de 2004 13:25
> Para: [EMAIL PROTECTED]
> Assunto: Re: [delphi-br] Re: Cálculo
> 
> 
> 
> Completando,
> 
> A forma de apresentação desta dízima é que poderia ser 
> tratada ou pelo 
> processador ou pela linguagem para isto não acontecer, 
> inclusive algumas 
> linguagens (C#) por exemplo, já minimizam este problema.
> Ou seja, o problema é matemático, mas o pessoal do 
> desenvolvimento comeu 
> mosca. Afinal quando eles entregam uma string numa variável 
> eles limpam tudo 
> (quem trabalhou com cobol antigamente lembra que a gente 
> tinha que limpar as 
> variáveis antes de usar, senão teria superposição).
> 
> williams
> *-------------------------------------------
> Williams Díaz
> [EMAIL PROTECTED]
> http://www.interban.com.br
> 
> ----- Original Message ----- 
> From: "Walter Alves Chagas Junior" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> Sent: Wednesday, November 17, 2004 2:07 PM
> Subject: RES: [delphi-br] Re: Cálculo
> 
> 
> 
> Não tem nada de curioso nisto amigo. O que o Fabio disse é a mais pura
> verdade. Isto é a característica do ponto flutuante, que 
> trabalha sempre com
> dízima periódica dada a necessidade da altíssima precisão do 
> valor. Ele
> nunca que trabalha com 8.1 mas sempre com 
> 8.0989174691874628174689274+e e
> coisa do tipo.
> 
> Se nao fosse por isto, jamais o Avião existiria e nunca 
> poderiamos sonhar em
> mandar um Homem a lua e uma sonda espacial para Jupiter por exemplo.
> 
> 
> 
> 
>  []s
> 
>  Walter Alves Chagas Junior
>  Projeto e desenvolvimento
>  Telemont Engenharia de telecomunicações
>  [EMAIL PROTECTED]
>  Fone: (31) 3389-8215 Fax: (31) 3389-8200
> 
> 
> 
> > -----Mensagem original-----
> > De: dom_rr2004 [mailto:[EMAIL PROTECTED]
> > Enviada em: quarta-feira, 17 de novembro de 2004 13:00
> > Para: [EMAIL PROTECTED]
> > Assunto: [delphi-br] Re: Cálculo
> >
> >
> >
> >
> > Boa tarde! Desculpem a intromissão mas achei a questão curiosa. Como
> > pode 8,100 - 8,100 = 0,000000000000000035561831257245 ?
> >
> >
> > Antecipadamente agradeço
> >
> > --- Em [EMAIL PROTECTED], "Delphi" <[EMAIL PROTECTED]>
> > escreveu
> > > Na verdade, quanto a matemática isto é apenas um interpretação
> > errada de aproximação decimal. A sobra está sendo apresentada em
> > simbologia científica (potência de base dez) ou seja, (-
> > 3,5561831257245E-16) representa matematimamente -
> > 0,000000000000000035561831257245, o que notóriamente é admitido como
> > sendo Zero. Sendo assim podemos considerar a "distância" 
> entre 0 e 1,
> > ou como 0 e -1, como sendo infinita, ou seja, não como se determinar
> > quantas divisões podem haver no intervalo -1> = 0< =1. O 
> que acontece
> > no cotidiano é a aproximação do resultado numérico através 
> do Cálculo
> > Diferencial e Integral, para que possamos ter a sensação de
> > quantidade, ou seja, 0,1,2,3....
> > >
> > > Qto ao programa, o resultado apresentado está correto, vc deve
> > apenas "arredondar" o resultado a ser exibido.
> > >
> > > Fabio Torres Takeuchi
> > > Engenheiro Químico
> > >   ----- Original Message ----- 
> > >   From: Depto de Informatica
> > >   To: [EMAIL PROTECTED]
> > >   Sent: Wednesday, November 17, 2004 1:31 PM
> > >   Subject: [delphi-br] Cálculo
> > >
> > >
> > >   Caros colegas,
> > >
> > >   Utilizo o Delphi 5, Access e ADO. O que está acontecendo é o
> > seguinte: Tenho um campo do tipo DECIMAL em uma determinada tabela
> > que contém o saldo do produto. Quando eu dou a saída de uma
> > determinada quantidade deste produto o sistema deverá testar se o
> > saldo não fica negativo. Neste campo eu tenho um saldo de 8,100 mas
> > quando vou dar saída destes 8,100 (devería ficar com zero de saldo)
> > ele me diz que o saldo ficará negativo e o valor que o sistema
> > apresenta como sendo o saldo restante é -3,55618312575245E-16.
> > >
> > >   Ou seja o sistema está me mostrando que:  8,100 - 8,100 = -
> > 3,55618312575245E-16
> > >
> > >   Como resolver isso ?
> > >
> > >   Obrigado
> > >
> > >   Luiz Carlos
> > >
> > >
> > >   [As partes desta mensagem que não continham texto foram 
> removidas]
> > >
> > >
> > >
> > >   -- 
> > >   <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> > >
> > >   Para ver as mensagens antigas, acesse:
> > >   http://br.groups.yahoo.com/group/delphi-br/messages
> > >
> > >   Para falar com o moderador, envie um e-mail para:
> > >   [EMAIL PROTECTED] ou [EMAIL PROTECTED]
> > >
> > >
> > >
> > >         Yahoo! Grupos, um serviço oferecido por:
> > >
> > >                     São Paulo Rio de Janeiro Curitiba Porto Alegre
> > Belo Horizonte Brasília
> > >
> > >
> > >
> > >
> > > 
> --------------------------------------------------------------------
> > ----------
> > >   Links do Yahoo! Grupos
> > >
> > >     a.. Para visitar o site do seu grupo na web, acesse:
> > >     http://br.groups.yahoo.com/group/delphi-br/
> > >
> > >     b.. Para sair deste grupo, envie um e-mail para:
> > >     [EMAIL PROTECTED]
> > >
> > >     c.. O uso que você faz do Yahoo! Grupos está sujeito 
> aos Termos
> > do Serviço do Yahoo!.
> > >
> > >
> > >
> > > [As partes desta mensagem que não continham texto foram removidas]
> >
> >
> >
> >
> >
> > -- 
> > <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> >
> > Para ver as mensagens antigas, acesse:
> >  http://br.groups.yahoo.com/group/delphi-br/messages
> >
> > Para falar com o moderador, envie um e-mail para:
> >  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
> >
> > Links do Yahoo! Grupos
> >
> >
> >
> >
> >
> >
> >
> >
> 
> 
> [As partes desta mensagem que não continham texto foram removidas]
> 
> 
> 
> -- 
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> 
> Para ver as mensagens antigas, acesse:
>  http://br.groups.yahoo.com/group/delphi-br/messages
> 
> Para falar com o moderador, envie um e-mail para:
>  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
> 
> Links do Yahoo! Grupos
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> -- 
> <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>
> 
> Para ver as mensagens antigas, acesse:
>  http://br.groups.yahoo.com/group/delphi-br/messages
> 
> Para falar com o moderador, envie um e-mail para:
>  [EMAIL PROTECTED] ou [EMAIL PROTECTED]
>  
> Links do Yahoo! Grupos
> 
> 
> 
> 
>  
> 
> 
> 


[As partes desta mensagem que não continham texto foram removidas]



-- 
<<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>>

Para ver as mensagens antigas, acesse:
 http://br.groups.yahoo.com/group/delphi-br/messages

Para falar com o moderador, envie um e-mail para:
 [EMAIL PROTECTED] ou [EMAIL PROTECTED]
 
Links do Yahoo! Grupos

<*> Para visitar o site do seu grupo na web, acesse:
    http://br.groups.yahoo.com/group/delphi-br/

<*> Para sair deste grupo, envie um e-mail para:
    [EMAIL PROTECTED]

<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
    http://br.yahoo.com/info/utos.html

 



Responder a