Ir para conteúdo
Fórum Script Brasil
  • 0

Função Arredondamento DELPHI


Matoso

Pergunta

Hoje fui migrar para o Delphi XE10 e me deparei com um erro que não estou sabendo resolver!
Essa função foi criada no Delphi 7 e roda normalmente.
Quando fui migrar o projeto todo para Delphi XE10, essa função não foi aceita rs.
Alguém poderia me ajudar?

Gostaria de entender o erro também!!

Obrigado

function ABNTRound(xValor:Extended; Decimals:SmallInt):Extended;
var
   VM : Extended;
   P, F, P2, F2 : Extended;
begin
   VM := Power(10, Decimals);
   P := Int(xValor);
   F := StrToFloat(FloatToStr(Frac(xValor) * VM));
   P2 := Val(Int(F));
   F2 := Val(Frac(F));

   if F2 > 0.5 then
   begin
      P2 := P2 + 1;
   end
   else
   begin
      if  ((10 * Val(F2)) >= 4.9999) and ((10 * Val(F2)) <= 5.0001) then
      begin
         if Frac(P2 / 2) > 0 then
            P2 := P2 + 1;
      end;
   end;

   P2 := P2 / VM;
   Result := P + P2;
end;


[dcc32 Error] uLibrary.pas(5356): E2008 Incompatible types

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Veja sobre o erro

https://translate.google.com.br/translate?hl=pt-BR&sl=en&u=http://docs.embarcadero.com/products/rad_studio/delphiAndcpp2009/HelpUpdate2/EN/html/devcommon/cm_comp_types_xml.html&prev=search

   P2 := Val(Int(F));
   F2 := Val(Frac(F));


OBS: o Val no código é variavel ou Procedure do delphi ?

se for variavel não está definida na Function, e é de tipo incompatível

se for procedure, está com a definição incorreta

Delphi syntax:

procedure Val(S; var V; var Code: Integer);

///Exemplo:

uses Dialogs;
var 

  I, Code: Integer;
begin
  { Get text from TEdit control }
  Val(Edit1.Text, I, Code);
  { Error during conversion to integer? }
  if Code <> 0 then
    MessageDlg('Error at position: ' + IntToStr(Code), mtWarning, [mbOk], 0, mbOk);
  else
    Canvas.TextOut(10, 10, 'Value = ' + IntToStr(I));

end;

abraço

 

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...