Ada es un lenguaje fuertemente tipado: en general no se pueden mezclar
valores de tipos diferentes aún cuando
pudieran parecer equivalentes (ni siquiera de un tipo derivado y su tipo base).
Esta regla no incluye a los subtipos: los valores de un
subtiposon valores del tipo base.
Se pueden realizar conversiones explícitas entre tipos estrechamente
relacionados tal como se establece en la sección 4.6 del "Ada 2005 Reference
Manual"; para ello se utiliza el tipo destino como si fuera el nombre de una
función con un parámetro que es una expresión del tipo origen de la conversión.
Una conversión de tipo cuyo parámetro es una variable no cambia el tipo
de una variable, lo que hace es devolver el valor que en el tipo destino
corresponde al valor del tipo origen asociado a la variable según las reglas
de conversión.
Ejemplo
X : Float;
Y : Integer := 5;
...
X := Float(Y); -- Se asigna a X el valor real 5.0