Funkcia VBA CDBL - Ako previesť hodnotu na dvojitý dátový typ?

Funkcia Excel VBA CDBL

VBA CDBL je vstavaná funkcia prevodu dátových typov a použitie tejto funkcie spočíva v tom, že prevádza dátový typ hodnoty ktorejkoľvek danej premennej na dátový typ Double, táto funkcia berie iba jediný argument, ktorým je hodnota samotnej premennej.

Vo VBA znamená „CDBL“ skratku „Convert to Double“. Táto funkcia prevádza dané číslo na dvojitý údajový typ. Zoznámte sa so syntaxou funkcie CDBL.

  • Výraz je hodnota, ktorú sa pokúšame previesť na dátový typ Double.

Akékoľvek pohyblivé číslo, ktoré je uložené ako iný ako dvojitý dátový typ, je možné previesť použitím funkcie CDBL.

Nezabudnite tu: Na dvojitý údajový typ možno previesť iba číselné hodnoty. Na dvojitý typ nie je možné previesť nič iné ako číselnú hodnotu, takže sa nakoniec zobrazí „Chyba nesúladu typov vo VBA“, ako je uvedené nižšie.

Už ste niekedy použili dvojitý dátový typ v kódovaní VBA?

Ak nie, stojí za to sa na to teraz pozrieť. Dvojitý je dátový typ, ktorý sa používa na uloženie desatinnej polohy čísla. Môžeme mať až 13 pohyblivých desatinných čísel.

Napríklad sa pozrite na nižšie uvedený kód VBA.

Vo vyššie uvedenom prípade som definoval typ premennej (k) ako Integer. Dim k As Integer

Ďalej som priradil hodnotu ako k = 25.4561248694615

Keď spustím kód, dostaneme výsledok nasledovne.

Výsledok sme dostali ako 25, pretože sme definovali premennú ako celé číslo VBA zaokrúhlené na najbližšiu celočíselnú hodnotu.

Aby sme zobrazili výsledok taký, aký je, musíme zmeniť typ premennej z Integer na Double.

Takto by sme mali získať presné číslo, ktoré sme priradili premennej.

Dobre, pamätajúc na to, môžeme previesť aj všetky čísla zlomkov, ktoré sú obchodmi ako nedvojný údajový typ.

Príklady použitia funkcie VBA CDBL

Príklad č

Na začatie konania sa pozrime na nižšie uvedený kód.

Kód:

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

Teraz spustím kód a uvidím, čo sa stane.

Aj keď je typ premennej VBA „String“, stále zobrazuje desatinné hodnoty. Je to spôsobené tým, že reťazec môže byť ľubovoľného druhu dátových typov, takže desatinné alebo pohyblivé čísla sa zobrazujú tak, ako sú.

Teraz zmením typ údajov vba z reťazca na Integer.

Kód:

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

Poznámka: Ak typ premennej nie je deklarovaný, stane sa z nej univerzálny dátový typ Variant.

Ďalej som deklaroval ešte jednu premennú, tj Dim DoubleNumber ako Double.

Pre prvú premennú, VaraintNumber, sme priradili hodnotu ako 854.6947.

Teraz pomocou druhej premennej sme použili funkciu CDBL na prevod hodnoty Variant na dátový typ Double.

DoubleNumber = CDbl (VaraintNumber)

Posledná časť je zobraziť výsledok v okne správy. MsgBox DoubleNumber

Teraz spustím kód, aby som videl výsledok.

Na čo treba pamätať

  • Dvojitý dátový typ môže prijímať iba číselné čísla.
  • Ak zadáte textovú hodnotu, spôsobí to chybu nesúladu typov.
  • Dvojitý dátový typ môže zobraziť iba 13 číslic pohyblivých čísel.

Zaujímavé články...