> > Bom dia, Daniel! > > Voc� deve estar esquecendo de uma regra b�sica da matem�tica, onde a > > multiplica��o sempre precede a divis�o
A mensagem foi para outro "Daniel", mas foi dar minha opini�o. Desconhe�o a "regra b�sica" a qual voc� faz refer�ncia. At� onde sei n�o existe preced�ncia entre as opera��es de divis�o e multiplica��o, exceto pela ordem em que estas aparecem na express�o ou pela indica��o expl�cita da preced�ncia atrav�s do uso de sinais de agrupamento (par�ntesis, colchetes, etc). Desta forma as express�es abaixo s�o verdadeiras: a) A * B / C = (A * B) / C = A * (B / C) = B / C * A b) X / Y * Z <> X / (Y * Z) � bom lembrar, no entanto, que em linguagens de programa��o temos que considerar os tipos dos operandos (integer, double, etc). No caso de n�meros inteiros a ordem entre a divis�o e multiplica��o pode alterar o resultado. Exemplo: X = A div B * C Y = C * A div B Neste caso X e Y podem ser diferentes dependendo dos valores de A e B. Exemplo: Para A = 5, B = 2 e C = 4, temos: X = 5 div 2 * 4 = 2 * 4 = 8 Y = 4 * 5 div 2 = 20 div 2 = 10 Outra fonte de problemas pode ser o tratamento dado �s opera��es matem�ticas que envolvem tipos de dados diferentes (inteiro e real). Nestes casos os resultados podem ser surpreendentes se n�o observarmos as caracter�sticas da linguagem usada. Os exemplos abaixo no Firebird trazem resultados diferentes, j� que no primeiro caso temos operandos inteiros e no segundo temos um operando real: SELECT 5 / 2 FROM RDB$DATABASE SELECT 5.0 / 2 FROM RDB$DATABASE Se quizer fazer com que a primeira opera��o retorno 2.5 (divis�o real), temos que fazer um type casting para o tipo DOUBLE (ou equivalente), como mostro abaixo: SELECT CAST( 5 AS DOUBLE PRECISION) / 2 FROM RDB$DATABASE ou SELECT 5 / CAST(2 AS DOUBLE PRECISION) FROM RDB$DATABASE Atenciosamente. Daniel P. Guimar�es Tecnobyte Inform�tica www.tecnobyte.com.br -- <<<<< 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

