Programación General > ADA
Comparacion De Fracciones
-SB-:
Holas!
Cierto, no me di cuenta cuando escribi ese pequeño codigo, que lo que estaba convirtiendo en float era el resultado de la division :rolleyes:
En cualquier caso supongo que ese programa ira dentro de algun objeto que implemente un tipo de datos abstrabto para trabajar con fracciones y seguramente habra alguna funcion que calcule el denominador comun..
Bueno, saludos!
Gneuromante:
Para que se entere todo el mundo de cual es el problema:
En Ada no existe conversión explícita de enteros a reales y viceversa. Esto se hace para evitar sorpresas desagradables y obtener un resultado truncado cuando se esperaba conservar toda la precisión.
Así, el operador / para enteros es la división entera, para dividir dos enteros y que el resultado sea un número real, hay que convertir primero los operadores a un tipo real:
--- Código: Text --- b : integer := 5; c : integer := 3; a : float;begin a := b / c; -- Ilegal, el resultado es entero y la variable real. El compilador da error a := float (b) / float (c); -- a es 1.666 a := float (b / c); -- a es 1.0end;
Navegación
[*] Página Anterior
Ir a la versión completa