[EMAIL PROTECTED] escribió:¡ QUE NO ES UN ERROOOOOOOOOR ! Mirad en el manual de ILE-RPG lo que comenta sobre RESDECPOS y MAXDIGITS y vereis por qué sucede. Resumiendo: El nº máximo de cifras con el que trabaja V5R2 es 31 ó 32 (no recuerdo bien). Si multiplicas 3 variables de 15 dígitos, el valor resultante puede tener hasta 45 cifras. Si no se ha especificado lo contrario en la hoja H o en el extensor de la operación, el sistema quitará los dígitos menos significativos de las operaciones intermedias para evitar posible desbordamiento, con lo que se pierden los decimales (no pasa con los tres campos de 9 dígitos porque 9*3 = 27, que es menor que el nº máximo de dígitos con los que puede trabajar el sistema). Este es el comportamiento de EVAL si en la hoja H no se ha especificado EXPROPTS(*RESDECPOS). Si especificamos EXPROPTS(*RESDECPOS) en la hoja H o bien usamos eval(R), el sistema realizará los cálculos intermedios empleando al menos el mismo nº de decimales que tenga el campo donde se almacene el resultado ( en EVAL A = B * C se emplearán al menos el nº de decimales con los que se haya definido A ). Esto soluciona el problema. Si el I5 tiene bugs, os aseguro que están más escondidos ;-) --
Fernando Pérez Cerámica Saloni. Dpto. Sistemas |
begin:vcard fn;quoted-printable:Fernando P=C3=A9rez n;quoted-printable:P=C3=A9rez;Fernando org:;Sistemas email;internet:[EMAIL PROTECTED] tel;work:Ext. 627 version:2.1 end:vcard
