Condividi tramite


Tipi di dati numerici (Visual Basic)

In Visual Basic sono disponibili numerosi tipi di dati numerici che consentono di gestire i numeri in diverse rappresentazioni. I tipi integrali rappresentano soltanto numeri interi (positivi, negativi e zero), mentre i tipi non integrali rappresentano numeri con una parte intera e una parte frazionaria.

Per un confronto dettagliato dei tipi di dati di Visual Basic, vedere Riepilogo dei tipi di dati (Visual Basic).

Tipi numerici integrali

I tipi di dati integrali sono quelli che rappresentano soltanto numeri senza parti frazionarie.

I tipi di dati integrali con segno sono Tipo di dati SByte (Visual Basic) (8 bit), Tipo di dati Short (Visual Basic) (16 bit), Tipo di dati Integer (Visual Basic) (32 bit) e Tipo di dati Long (Visual Basic) (64 bit). Se una variabile contiene sempre Integer anziché numeri frazionari, dichiararla utilizzando uno di questi tipi.

I tipi integrali senza segno sono Tipo di dati Byte (Visual Basic) (8 bit), Tipo di dati UShort (Visual Basic) (16 bit), Tipo di dati UInteger (32 bit) e Tipo di dati ULong (Visual Basic) (64 bit). Se una variabile contiene dati binari o dati di natura sconosciuta, dichiararla utilizzando uno di questi tipi.

Prestazioni

Le operazioni aritmetiche risultano più veloci con i tipi integrali che con altri tipi di dati. In Visual Basic le prestazioni migliori si ottengono con i tipi Integer e UInteger.

Valori integer grandi

Se è necessario contenere un intero più grande del tipo di dati Integer che è possibile contenere, in alternativa si può utilizzare il tipo di dati Long. Le variabili Long possono includere numeri compresi tra -9,223,372,036,854,775,808 e 9,223,372,036,854,775,807. Le operazioni con Long sono leggermente più lente rispetto a quelle con Integer.

Se sono necessari valori ancora più grandi, è possibile utilizzare il Tipo di dati Decimal (Visual Basic). Se non si utilizzano posizioni decimali, in una variabile Decimal è possibile archiviare numeri compresi tra -79.228.162.514.264.337.593.543.950.335 e 79.228.162.514.264.337.593.543.950.335. Le operazioni con i numeri Decimal risultano tuttavia molto più lente rispetto a quelle che utilizzano un qualsiasi altro tipo di dati numerici.

Valori integer piccoli

Se non è necessario l'intervallo completo di tipi di dati Integer, è possibile utilizzare il tipo di dati Short che può contenere Integer compresi tra -32,768 e 32,767. Nell'intervallo più piccolo di interi il tipo di dati SByte contiene numeri interi compresi tra -128 e 127. In alcuni casi, se si utilizzano numerose variabili che contengono interi piccoli, Common Language Runtime è in grado di archiviare le variabili Short e SByte in modo più efficace riducendo il consumo di memoria. Le operazioni con Short e SByte, tuttavia, sono più lente rispetto a quelle con Integer.

Interi senza segno

Se si ha la certezza che la variabile non dovrà mai contenere un numero negativo, è possibile utilizzare i tipi senza segno Byte, UShort, UInteger e ULong. Ciascuno di questi tipi è in grado di contenere un valore integer di grandezza doppia rispetto a quella del corrispondente tipo con segno (SByte, Short, Integer e Long). Le prestazioni di un tipo senza segno sono equivalenti a quelle del corrispondente tipo con segno. In particolare, UInteger e Integer sono i più efficaci tra i tipi di dati numerici elementari.

Tipi numerici non integrali

I tipi di dati non integrali sono quelli che rappresentano numeri con parti sia intere che frazionarie.

I tipi di dati numerici non integrali sono Decimal (a virgola fissa a 128 bit), Tipo di dati Single (Visual Basic) (a virgola mobile a 32 bit) e Tipo di dati Double (Visual Basic) (a virgola mobile a 64 bit). Sono tutti tipi con segno. Se una variabile può contenere una frazione, dichiararla utilizzando uno di questi tipi.

Decimal non è un tipo di dati a virgola mobile. I numeri Decimal contengono un valore intero binario e un fattore di scala intero che specifica quale parte del valore è una frazione decimale.

I numeri a virgola mobile (Single e Double) sono caratterizzati da un intervallo maggiore rispetto a quello dei numeri Decimal, ma possono essere soggetti a errori di arrotondamento. I tipi a virgola mobile supportano un numero di cifre significative minore rispetto a Decimal, ma sono in grado di rappresentare valori con un ordine di grandezza maggiore.

I valori numerici non integrali possono essere espressi come mmmEeee, in cui mmm è la mantissa (le cifre significative) e eee è l'esponente (una potenza di 10). Il valore più grande positivo dei tipi non integrali è 7,9228162514264337593543950335E+28 per Decimal, 3,4028235E+38 per Single e 1,79769313486231570E+308 per Double.

Prestazioni

Double è il più efficace tra i tipi di dati frazionari, poiché i processori disponibili sulle attuali piattaforme eseguono operazioni a virgola mobile in precisione doppia. Tuttavia, l'esecuzione delle operazioni con tipo di dati Double richiede più tempo rispetto a quella delle operazioni con i tipi integrali, ad esempio Integer.

Numeri con il più piccolo ordine di grandezza

Per i numeri con il più piccolo ordine di grandezza possibile (il più vicino a 0), le variabili Double possono contenere numeri fino a -4.94065645841246544E-324 per i valori negativi e fino a 4.94065645841246544E-324 per i valori positivi.

Numeri frazionari piccoli

Se non è necessario disporre dell'intervallo completo del tipo di dati Double, è possibile utilizzare il tipo di dati Single, che può contenere numeri a virgola mobile compresi tra -3.4028235E+38 e 3.4028235E+38. Gli ordini di grandezza più piccoli per le variabili Single sono -1,401298E-45 per i valori negativi e 1,401298E-45 per i valori positivi. In alcuni casi, se si utilizzano numerose variabili che contengono numeri a virgola mobile piccoli, Common Language Runtime è in grado di archiviare le variabili Single in modo più efficace riducendo il consumo di memoria.

Vedere anche

Attività

Risoluzione dei problemi relativi ai tipi di dati (Visual Basic)

Procedura: inserire Integer in una variabile (Visual Basic)

Procedura: inserire frazioni in una variabile (Visual Basic)

Procedura: inserire in una variabile il numero più grande possibile (Visual Basic)

Procedura: ottimizzare l'archiviazione di Integer positivi con tipi senza segno (Visual Basic)

Procedura: chiamare una funzione Windows che accetta tipi senza segno (Visual Basic)

Procedura: inserire in una variabile le cifre più significative (Visual Basic)

Procedura: inserire valori di valuta in una variabile (Visual Basic)

Concetti

Dati di tipo carattere (Visual Basic)

Tipi di dati vari (Visual Basic)

Altre risorse

Tipi di dati elementari (Visual Basic)