En el ejemplo anterior, no sería posible invocar la subrutina con la variable "X" si esta fuese de un tipo incompatible con float.
Esto se conoce como conversión o moldeado de tipos (typecasting) y también debe estar soportado por el compilador.
Cada lenguaje de programación puede ser más o menos tipado según en que casos exige el typecasting.
Por ejemplo, la conversión automática entre entero y coma flotante podría ser admitida, pero no al contrario.
Es habitual que el lenguaje de programación C se considere fuertemente tipado, lo cual es relativamente incorrecto.