silvarudo 0 Denunciar post Postado Março 24, 2010 Falaí gente. Seguinte fiz essa função em Delphi: function Basic.calc(idx: Single; num1, num2: Single): Single; begin result := idx * (num1 - idx * num2); end; E tô tentando implementar a mesma em C++: double Basic::calc(double idx, double num1, double num2) { return idx * (num1 - idx * num2); } mas o resultado é bem diferente. Não sou muito bom em C++ e não consigo ver o que tá errado. Alguem saberia? Obrigado Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Março 24, 2010 Single = float e não double. Ajudaria se você escrevesse os resultados. Compartilhar este post Link para o post Compartilhar em outros sites
silvarudo 0 Denunciar post Postado Março 24, 2010 Eu já tinha colocado os dois tipos mas não resolveu. Descobri o problema ou acho que descobri. Acontece que na chamada da função eu colocava: calc(x, 10/100, 32/1000, 23/100); no delphi funciona, mas em C++ parece que quando dividimos um inteiro por outro, o retorno é um inteiro, ou seja, na operação o número é arredondado, diferente do pascal que para dividir dois inteiro temos que usar o comando "div". Obrigado pela atenção. Compartilhar este post Link para o post Compartilhar em outros sites