Las conversiones implícitas son aquellas que realiza el propio lenguaje de programación al tratar un dato como si fuese otro tipo de variable.
Desde mi punto de vista resultan muy peligrosas si no tenemos claro que está sucediendo, aunque en ocasiones puede ser la forma más rápida de realizar alguna acción.
Un caso típico es almacenar un número decimal dentro de una variable entera.
Como ejemplo esta macro.
En está macro asignamos el valor 5,8 primero a una variable decimal y luego a una entera, y las mostramos.
El código es el siguiente.
Sub variables()
Dim numeroEntero As Integer
Dim numeroDecimal As Simple
'almacenamos un valor decimal
numeroDecimal = 5.8
'lo mostramos
MsgBox (numeroDecimal)
'asignamos el valor decimal a una variable entera
numeroEntero = 5.8
'lo mostramos
MsgBox (numeroEntero)
End Sub
Esto provoca la alteración de la parte decimal del valor, dependiendo del lenguaje de programación, puede ser truncada, o redondeada como en el caso de VBA.
Si esta asignación se hace en medio de un código y el resultado se almacena nuevamente en una variable decimal, puede pasar desapercibido, y resultar realmente complejo encontrar la fuente del problema.
En el primer caso de muestra el valor inicial asignado a la variable.
En el segundo vemos que el valor se ha redondeado al entero más cercano.
Si non somos conscientes de estas conversiones, pueden llegar a ser un verdadero dolor de cabeza.
No hay comentarios:
Publicar un comentario