Funzioni di conversione tra tipi di dati

Funzioni di conversione tra tipi di dati

Ogni funzione forza per un'espressione l'uso di un tipo di dati specifico.

Sintassi

CBool( espressione )

CByte( espressione )

CCur( espressione )

CDate( espressione )

CDbl( espressione )

CDec( espressione )

CInt( espressione )

CLng( espressione )

CSng( espressione )

CStr( espressione )

CVar( espressione )

L'argomentoespressione obbligatorio è qualsiasi espressione stringa o espressione numerica.

Tipi restituiti

Il nome della funzione determina il tipo restituito, come mostrato nella tabella seguente:

Funzione

Tipo restituito

Intervallo valido per l'argomento espressione

CBool

Boolean

Qualsiasi espressione stringa o numerica valida.

CByte

Byte

Da 0 a 255.

CCur

Currency

Da -922.337.203.685.477,5808 a 922.337.203.685.477,5807.

CDate

Date

Qualsiasi espressione data valida.

CDbl

Double

Da -1,79769313486231E308 a
-4,94065645841247E-324 per valori negativi. Da 4,94065645841247E-324 a 1,79769313486232E308 per valori positivi.

CDec

Decimal

+/-79.228.162.514.264.337.593.543.950.335 per numeri con fattore di divisione zero, ovvero senza posizioni decimali. Per numeri con 28 posizioni decimali, l'intervallo è
+/-7,9228162514264337593543950335. Il valore minimo possibile diverso da zero è 0,0000000000000000000000000001.

CInt

Integer

Da -32.768 a 32.767. Le frazioni vengono arrotondate.

CLng

Long

Da -2.147.483.648 a 2.147.483.647. Le frazioni vengono arrotondate.

CSng

Single

Da -3,402823E38 a -1,401298E-45 per numeri negativi. Da 1,401298E-45 a 3,402823E38 per numeri positivi.

CStr

String

I valori restituiti per la funzione CStr dipendono dall'argomento espressione.

CVar

Variant

Stesso intervallo del tipo Double per i valori numerici. Stesso intervallo del tipo String per i valori non numerici.


Osservazioni

Se l'argomento espressione passato alla funzione non è compreso nell'intervallo del tipo di dati in cui si esegue la conversione, si verificherà un errore.

In generale, è possibile documentare il codice usando le funzioni di conversione tra tipi di dati per indicare che il risultato di alcune operazioni deve essere espresso come un determinato tipo di dati invece del tipo di dati predefinito. Ad esempio, usare la funzione CCur per forzare il calcolo di valori di valuta nei casi in cui verrebbe normalmente usato il calcolo a precisione singola, a precisione doppia o di numeri interi.

Usare le funzioni di conversione tra tipi di dati invece di Val per specificare conversioni internazionali da un tipo di dati a un altro. Ad esempio, quando si usa CCur, vengono riconosciuti correttamente separatori decimali diversi, separatori delle migliaia diversi e varie opzioni di valuta in base alle impostazioni internazionali del computer in uso.

Quando la parte frazionaria è esattamente 0,5, CInt e CLng la arrotondano sempre al numero pari più vicino. Ad esempio, 0,5 viene arrotondato a 0, mentre 1,5 viene arrotondato a 2. CInt e CLng differiscono dalle funzioni Fix e Int, che troncano, invece di arrotondare, la parte frazionaria di un numero. Inoltre, Fix e Int restituiscono sempre un valore dello stesso tipo di quello passato.

Usare la funzione IsDate per determinare se data può essere convertito in una data o un'ora. CDate riconosce i valori letterali di data e i valori letterali di ora inclusi nell'intervallo delle date accettabili. Quando un numero viene convertito in data, viene convertita in data la parte intera del numero. Qualsiasi parte frazionaria del numero viene convertita in ora del giorno, iniziando dalla mezzanotte.

CDate riconosce i formati di data in base alle impostazioni locali del sistema. È possibile che l'ordine corretto di giorno, mese e anno non venga determinato se è specificato in un formato diverso da quello delle impostazioni di data riconosciute. Inoltre, un formato di data estesa non viene riconosciuto se contiene anche la stringa del giorno della settimana.

È anche disponibile una funzione CVDate per la compatibilità con le versioni precedenti di Visual Basic. La sintassi della funzione CVDate è identica a quella della funzione CDate, ma CVDate restituisce un tipo di dati Variant il cui sottotipo è Date invece di un effettivo tipo Date. Poiché è ora disponibile un tipo Date intrinseco, la funzione CVDate non è più necessaria. Lo stesso effetto può essere ottenuto convertendo un'espressione nel tipo di dati Date e assegnandola a un tipo di dati Variant. Questa tecnica è coerente con la conversione di tutti gli altri tipi intrinseci nei rispettivi sottotipi Variant equivalenti.

Nota :  La funzione CDec non restituisce un tipo di dati discreto. Al contrario, restituisce sempre un tipo di dati Variant il cui valore è stato convertito in un sottotipo Decimal.

Esempi

Nota : Gli esempi seguenti illustrano l'uso di questa funzione in un modulo di Visual Basic, Applications Edition (VBA). Per altre informazioni sull'uso di VBA, selezionare Riferimenti per sviluppatori nell'elenco a discesa accanto a Cerca e immettere uno o più termini nella casella di ricerca.

Funzione CBool

Suggerimento :  Il Generatore di espressioni con IntelliSense a partire da Access 2010 aiuta a ottenere espressioni corrette.

Questo esempio usa la funzione CBool per convertire un'espressione in un valore di tipo Boolean. Se l'espressione restituisce un valore diverso da zero, CBool restituisce True; in caso contrario, restituisce False.

Dim A, B, Check
A = 5: B = 5 ' Initialize variables.
Check = CBool(A = B) ' Check contains True.
A = 0 ' Define variable.
Check = CBool(A) ' Check contains False.

Funzione CByte

Questo esempio usa la funzione CByte per convertire un'espressione in un valore di tipo Byte.

Dim MyDouble, MyByte
MyDouble = 125.5678 ' MyDouble is a Double.
MyByte = CByte(MyDouble) ' MyByte contains 126.

Funzione CCur

Questo esempio usa la funzione CCur per convertire un'espressione in un valore di tipo Currency.

Dim MyDouble, MyCurr
MyDouble = 543.214588 ' MyDouble is a Double.
MyCurr = CCur(MyDouble * 2)
' Convert result of MyDouble * 2 (1086.429176) to a
' Currency (1086.4292).

Funzione CDate

Questo esempio usa la funzione CDate per convertire una stringa in un valore di tipo Date. In generale, non è consigliabile specificare date e ore a livello di codice come stringhe (come mostrato in questo seguente). Usare invece valori letterali di data e di ora, come #2/12/1969# e #4:45:23#.

Dim MyDate, MyShortDate, MyTime, MyShortTime
MyDate = "February 12, 1969"
' Convert to Date data type.
MyShortDate = CDate(MyDate)
MyTime = "4:35:47 PM"
' Convert to Date data type.
MyShortTime = CDate(MyTime)

Funzione CDbl

Questo esempio usa la funzione CDbl per convertire un'espressione in un valore di tipo Double.

Dim MyCurr, MyDouble
MyCurr = CCur(234.456784)
' Convert result to a Double.
MyDouble = CDbl(MyCurr * 8.2 * 0.01)

Funzione CDec

Questo esempio usa la funzione CDec per convertire un valore numerico in un valore di tipo Decimal.

Dim MyDecimal, MyCurr
MyCurr = 10000000.0587 ' MyCurr is a Currency.
MyDecimal = CDec(MyCurr) ' MyDecimal is a Decimal.

Funzione CInt

Questo esempio usa la funzione CInt per convertire un valore in un valore di tipo Integer.

Dim MyDouble, MyInt
MyDouble = 2345.5678 ' MyDouble is a Double.
MyInt = CInt(MyDouble) ' MyInt contains 2346.

Funzione CLng

Questo esempio usa la funzione CLng per convertire un valore in un valore di tipo Long.

Dim MyVal1, MyVal2, MyLong1, MyLong2
MyVal1 = 25427.45
MyVal2 = 25427.55 ' MyVal1, MyVal2 are Doubles.
MyLong1 = CLng(MyVal1)
' MyLong1 contains 25427.
MyLong2 = CLng(MyVal2)
' MyLong2 contains 25428.

Funzione CSng

Questo esempio usa la funzione CSng per convertire un valore in un valore di tipo Single.

Dim MyDouble1, MyDouble2, MySingle1, MySingle2
' MyDouble1, MyDouble2 are Doubles.
MyDouble1 = 75.3421115: MyDouble2 = 75.3421555
MySingle1 = CSng(MyDouble1)
' MySingle1 contains 75.34211.
MySingle2 = CSng(MyDouble2)
' MySingle2 contains 75.34216.

Funzione CStr

Questo esempio usa la funzione CStr per convertire un valore numerico in un valore di tipo String.

Dim MyDouble, MyString
MyDouble = 437.324 ' MyDouble is a Double.
MyString = CStr(MyDouble)
' MyString contains "437.324".

Funzione CVar

Questo esempio usa la funzione CVar per convertire un'espressione in un valore di tipo Variant.

Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.
Amplia le tue competenze
Esplora i corsi di formazione
Ottieni in anticipo le nuove caratteristiche
Partecipa al programma Office Insider

Queste informazioni sono risultate utili?

Grazie per i tuoi commenti e suggerimenti

Grazie per il tuo feedback! Potrebbe essere utile metterti in contatto con uno dei nostri operatori del supporto di Office.

×