Funzioni di conversione tra tipi di dati

Ogni funzione forza per un'espressione l'utilizzo 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'argomento obbligatorio espressione è qualsiasi espressione stringa o espressione numerica.

Tipi restituiti

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

Funzione

Tipo restituito

Intervallo valido per l'argomento espressione

CBool

Boolean

Qualsiasi espressione numerica o stringa 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 più basso possibile diverso da zero è 0,0000000000000000000000000001.

CInt

Numero intero

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

Singola

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

CStr

Valore stringa

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

CVar

Variant

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


Osservazioni

Se il valore espressione passato alla funzione non è compreso nell'intervallo del tipo di dati in cui si sta eseguendo la conversione, si verificherà un errore.

In generale, è possibile documentare il codice utilizzando le funzioni di conversione tra tipi di dati per indicare che il risultato di alcune operazioni deve essere espresso come un tipo di dati particolare anziché il tipo di dati predefinito. Utilizzare ad esempio la funzione CCur per forzare il calcolo di valori di valuta nei casi in cui verrebbe normalmente utilizzato il calcolo a precisione singola, a precisione doppia o a precisione intera.

È consigliabile utilizzare le funzioni di conversione tra tipi di dati anziché la funzione Val per garantire conversioni da un tipo di dati a un altro supportate a livello internazionale. Ad esempio, quando si utilizza la funzione CCur vengono riconosciuti in modo appropriato diversi separatori decimali, diversi separatori delle migliaia e varie opzioni di valuta in base alle impostazioni internazionali del computer in uso.

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

Utilizzare la funzione IsDate per determinare se il valore date può essere convertito in una data o in un'ora. La funzione CDate riconosce i valori letterali di data e i valori letterali di ora, nonché alcuni numeri compresi nell'intervallo di date accettabili. Quando si converte un numero in una data, la parte intera del numero viene convertita in una data. L'eventuale parte frazionaria del numero viene convertita in un'ora del giorno, a partire dalla mezzanotte.

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

Per compatibilità con le versioni precedenti di Visual Basic, è inoltre disponibile la funzione CVDate. La sintassi della funzione CVDate è identica a quella della funzione CDate. La funzione CVDate, tuttavia, restituisce un valore Variant il cui sottotipo è Date anziché un tipo Date effettivo. Poiché adesso è disponibile un tipo Date intrinseco, non è più necessario utilizzare la funzione CVDate. Lo stesso risultato può essere ottenuto convertendo un'espressione in un valore Date e quindi assegnandolo a un valore Variant. Questa tecnica è coerente con la conversione di tutti gli altri tipi intrinseci nei relativi 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, disponibile a partire da Access 2010, consente di ottenere espressioni corrette.

In questo esempio viene utilizzata la funzione CBool per convertire un'espressione in un valore Boolean. Se l'espressione restituisce un valore diverso da zero, la funzione CBool restituirà True. In caso contrario, restituirà 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

In questo esempio viene utilizzata la funzione CByte per convertire un'espressione in un valore Byte.

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

Funzione CCur

In questo esempio viene utilizzata la funzione CCur per convertire un'espressione in un valore 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

In questo esempio viene utilizzata la funzione CDate per convertire una stringa in un valore Date. In generale, non è consigliabile specificare date e ore come stringhe a livello di codice, come illustrato nell'esempio. Utilizzare invece valori letterali di data e valori letterali di ora, ad esempio #2/12/1969# e #4:45:23 PM#.

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

In questo esempio viene utilizzata la funzione CDbl per convertire un'espressione in un valore Double.

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

Funzione CDec

In questo esempio viene utilizzata la funzione CDec per convertire un valore numerico in un valore Decimal.

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

Funzione CInt

In questo esempio viene utilizzata la funzione CInt per convertire un valore in un valore Integer.

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

Funzione CLng

In questo esempio viene utilizzata la funzione CLng per convertire un valore in un valore 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

In questo esempio viene utilizzata la funzione CSng per convertire un valore in un valore 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

In questo esempio viene utilizzata la funzione CStr per convertire un valore numerico in un valore String.

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

Funzione CVar

In questo esempio viene utilizzata la funzione CVar per convertire un'espressione in un valore Variant.

Dim MyInt, MyVar
MyInt = 4534 ' MyInt is an Integer.
MyVar = CVar(MyInt & "000")
' MyVar contains the string 4534000.
Condividi Facebook Facebook Twitter Twitter Posta elettronica Posta elettronica

Queste informazioni sono risultate utili?

Ottimo! Altri commenti?

Cosa possiamo migliorare?

Grazie per i tuoi commenti e suggerimenti

×