Ir para conteúdo
  • Cadastre-se

dev botao

BUG na RoundABNT - não suporta valores grandes


amarildolacerda
  • Este tópico foi criado há 3084 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

texto ( roundABNT(12334234.4567567567567567567,-2) );      ->     12334234,46

texto ( roundABNT(12334234.4567567567567567567,-4) );   ->     -121170,7016

texto ( roundABNT(5233.4567567567567567567,-6) );    ->     938,489461

 

Este problema ocorre na linha:

   PowValue := SimpleRoundTo( AValue * Pow, -9) ; // SimpleRoundTo elimina dizimas ;
 

Amarildo Lacerda

Storeware Team

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Você diz que esses testes causam um A.V. ou estouro de Variável  ?

Consegue inserir esses testes na FPCUnit ? (ACBrComumTestCases.lpi)

 

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

Consegui aplicar os testes na FPCUnit

procedure RoundABNTTest.TestesEstouro;
begin
  CheckEquals( 12334234.46, RoundABNT(12334234.4567567567567567567,-2) );
  CheckEquals( 12334234.4568, RoundABNT(12334234.4567567567567567567,-4) );
  CheckEquals( 5233.456757, RoundABNT(5233.4567567567567567567,-6) );
end;   

Apliquei uma possível correção no SVN... O Truque, foi desprezar a parte inteira do Valor, que não tem influência no calculo... No final, essa parte desprezada é novamente incorporada ao resultado...

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 3084 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.