![]() |
Problemas de calculo en Procedimientos
Hola
Tengo este problema y la verdad es que no encuentro la causa Dentro de un Procedimiento en Firebird 1.0 realizo este calculo Calc = 1+(10.5/100); Calc es un parametro de salida del tipo FLOAT probe tambien con NUMERIC 18,3 y el resultado es el mismo siempre me devuelve Calc = 1,10000002 cuando deberia devolver Calc = 1,105 Cual es el problema y como puedo solucionarlo Muchas Gracias |
Hola.
Prueba con : 1.000 + (10.500 / 100.000) El problema está en que se truncan los valores, en cambio si especificas cada operando con el numero de decimales que quieres en el resultado, no debería haber problemas. Saludos. |
Gracias Marc
El problema es que cuando haces (10500/100000) deberia dar 0,105 y ahi es donde ya se trunca el resultado y nose como resolverlo. ¿ Sabes que otra cosa puedo hacer ? Gracias |
Probá con 10.5 * 0.01 (las multiplicaciones siempre dan bien)
|
Gracias Marc
El problema es que cuando haces (10500/100000) deberia dar 0,105 y ahi es donde ya se trunca el resultado y nose como resolverlo. ¿ Sabes que otra cosa puedo hacer ? Gracias |
Gracias Marc
El problema es que cuando haces (10500/100000) deberia dar 0,105 y ahi es donde ya se trunca el resultado y nose como resolverlo. ¿ Sabes que otra cosa puedo hacer ? Gracias |
Hola.
Creo que no nos hemos entendido. Cuando te indicaba que operases con 10.500 quería decir diez coma cinco cero cero, y no diez mil quinientos. Puesto que el problema de los truncamientos, se soluciona poniendo cada operando a la precisión con la que quieres el resultado. Así el resultado será como mínimo de esa precisión (o normalmente superior). Verás como 10.500 / 100.000 devuelve correctamente 0.105000 (es más, al ser una división añade 3 dígitos de precisión) Nota : Si los números con los que vas a operar són parámetros o variables, solo tienes que especificarlos de tipo numeric(18, 3). Saludos. |
Muchas gracias jceluce
Muchas Gracias Mark, perdona se me habia pasado por alto el PEQUEÑO detalle de la coma. Asi que ahora si me funciono Saludos |
| La franja horaria es GMT +2. Ahora son las 15:20:00. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi