Guía mínima de Ada 95 |
Media := SumaElementos / NumeroElementos;
Si SumaElementos y NumeroElementos son variables integer y Media es float, tal expresión es incorrecta, dado que el resultado de la división es de tipo integer, y pretendemos asignársela a un float. Previamente, se deben convertir SumaElementos y NumeroElementos a float. Para ello basta hacer lo siguiente:
Media := float(SumaElementos) / float(NumeroElementos);
Nótese que:
Media := float(SumaElementos / NumeroElementos);
no daría el mismo resultado.
En general, para convertir de un tipo numérico a otro basta con poner:
Nuevo_Tipo(Expresión_tipo_original)
Cuando una expresión real se convierte a un tipo entero, se redondea
el resultado al entero más cercano: "integer(2.85)" da como resultado
"3". Si no es esto lo que queremos, podemos utilizar las siguiente funciones
atributo de los reales en coma flotante:
(Sea FT un tipo real en coma flotante, x una variable de tipo FT y
el resultado también será de tipo FT)
FT'rounding(x) redondea x
al valor entero más próximo
FT'truncation(x) devuelve el valor de
x sin decimales
FT'floor(x) devuelve
el valor entero más grande menor que x
FT'ceiling(x) devuelve
el valor entero más pequeño mayor que x