Función VBA CDBL - ¿Cómo convertir valor a tipo de datos doble?

Tabla de contenido

Función Excel VBA CDBL

VBA CDBL es una función de conversión de tipo de datos incorporada y el uso de esta función es que convierte el tipo de datos del valor de cualquier variable dada en un tipo de datos Double, esta función solo toma un único argumento que es el valor de la propia variable.

En VBA, "CDBL" significa "Convertir a doble". Esta función convierte el número dado al tipo de datos Double. Eche un vistazo a la sintaxis de la función CDBL.

  • La expresión es el valor que estamos intentando convertir al tipo de datos Double.

Cualquier número flotante que se almacene como un tipo de datos diferente al doble se puede convertir aplicando la función CDBL.

Punto para recordar aquí: solo los valores numéricos se pueden convertir al tipo de datos Double. Cualquier cosa que no sea un valor numérico no se puede convertir a tipo doble, por lo que terminará mostrando "Error de no coincidencia de tipo en VBA" como el siguiente.

¿Alguna vez ha utilizado un tipo de datos doble en la codificación VBA?

Si no es así, vale la pena echarle un vistazo ahora. Double es el tipo de datos que se utiliza para almacenar la posición decimal del número. Podemos tener hasta 13 números decimales flotantes.

Por ejemplo, mire el siguiente código VBA.

En lo anterior, he definido el tipo de variable (k) como Integer. Dim k como entero

A continuación, he asignado el valor como k = 25,4561248694615

Cuando ejecuto el código, obtendremos el resultado de la siguiente manera.

Obtuvimos el resultado como 25 ya que hemos definido la variable como Integer VBA redondeado al valor entero más cercano.

Para mostrar el resultado como es, necesitamos cambiar el tipo de variable de Integer a Double.

Esto debería darnos el número exacto que le asignamos a la variable.

Ok, teniendo esto en cuenta, también podemos convertir todos los números de fracciones, que se almacenan como un tipo de datos no doble.

Ejemplos para utilizar la función VBA CDBL

Ejemplo 1

Para comenzar el procedimiento, veamos el siguiente código.

Código:

Sub Double_Example1 () Dim k As String k = 48.14869569 MsgBox k End Sub

Ahora ejecutaré el código y veré qué sucede.

Aunque el tipo de variable de VBA es "Cadena", todavía muestra los valores decimales. Esto se debe a que String puede ser de cualquier tipo de datos, por lo que los números decimales o flotantes se muestran como están.

Ahora cambiaré el tipo de datos vba de cadena a Integer.

Código:

Sub Double_Example1() Dim k As Integer k = 48.14869569 MsgBox k End Sub

Now I will run the code and see what happens.

This is where the CDBL function plays a vital role in converting the integer data type to double. So below code is the same for you.

Code:

Sub Double_Example1() Dim IntegerNumber As String Dim DoubleNumber As Double IntegerNumber = 48.14869569 DoubleNumber = CDbl(IntegerNumber) MsgBox DoubleNumber End Sub

This will convert the string data type value to Double.

Example #2

Now let’s convert the number 854.6947, which is stored as Variant to Double data type.

Code:

Sub Double_Example2() Dim VaraintNumber Dim DoubleNumber As Double VaraintNumber = 854.6947 DoubleNumber = CDbl(VaraintNumber) MsgBox DoubleNumber End Sub

The first variable I have declared as “Variant.” Dim VaraintNumber

Nota: Cuando no se declara el tipo de variable, se convierte en un tipo de datos universal Variant.

A continuación, he declarado una variable más, es decir, Dim DoubleNumber As Double.

Para la primera variable, VaraintNumber, hemos asignado el valor como 854,6947.

Ahora, al usar la segunda variable, hemos aplicado la función CDBL para convertir el valor Variant al tipo de datos Double.

DoubleNumber = CDbl (VaraintNumber)

La parte final es mostrar el resultado en el cuadro de mensaje. MsgBox DoubleNumber

Ahora ejecutaré el código para ver el resultado.

Cosas para recordar

  • Un tipo de datos doble solo puede aceptar números numéricos.
  • Si se proporciona un valor de texto, se producirá un error de no coincidencia de tipo.
  • Un tipo de datos doble puede mostrar solo 13 dígitos de números flotantes.

Articulos interesantes...