Conversioni fra stringhe e altri tipi (Visual Basic)
È possibile convertire un valore numerico, Boolean
o di data/ora in un valore String
. È anche possibile eseguire la conversione nella direzione opposta, ovvero da un valore String a un valore numerico, Boolean
o Date
, purché il contenuto della stringa possa essere interpretato come valore valido del tipo di dati di destinazione. Se non è possibile, si verifica un errore di run-time.
Le conversioni per tutte queste assegnazioni, in entrambe le direzioni, sono conversioni che supportano un minor numero di dati. È consigliabile usare le parole chiave per la conversione dei tipi (CBool
, CByte
, CDate
, CDbl
, CDec
, CInt
, CLng
, CSByte
, CShort
, CSng
, CStr
, CUInt
, CULng
, CUShort
e CType
). Le funzioni Format e Val offrono un controllo aggiuntivo sulle conversioni tra stringhe e numeri.
Se è stata definita una classe o una struttura, è possibile definire operatori di conversione dei tipi tra String
e il tipo della classe o della struttura. Per altre informazioni, vedere How to: Define a Conversion Operator.
Conversione di numeri in stringhe
È possibile usare la funzione Format
per convertire un numero in una stringa formattata, che può includere non solo le cifre appropriate, ma anche simboli di formattazione, ad esempio un segno di valuta (ad esempio $
), separatori di migliaia o simboli di raggruppamento cifre (ad esempio ,
) e un separatore decimale (ad esempio .
). Format
usa automaticamente i simboli appropriati in base alle impostazioni di Opzioni internazionali specificate nel Pannello di controllo di Windows.
Si noti che l'operatore di concatenazione (&
) può convertire un numero in una stringa in modo implicito, come illustrato nell'esempio seguente.
' The following statement converts count to a String value.
Str = "The total count is " & count
Conversione di stringhe in numeri
È possibile usare la funzione Val
per convertire in modo esplicito in un numero le cifre presenti in una stringa. Val
legge la stringa finché non rileva un carattere diverso da una cifra, uno spazio, una tabulazione, un avanzamento riga o un punto. Le sequenze "&O" e "&H" modificano la base del sistema numerico e terminano l'analisi. Fino a quando la lettura non viene interrotta, Val
converte tutti i caratteri appropriati in un valore numerico. Ad esempio, l'istruzione seguente restituisce il valore 141.825
.
Val(" 14 1.825 miles")
Quando Visual Basic converte una stringa in un valore numerico, usa le impostazioni di Opzioni internazionali specificate nel Pannello di controllo di Windows per interpretare il separatore delle migliaia, il separatore decimale e il simbolo di valuta. Questo significa che una conversione potrebbe riuscire con un'impostazione, ma non con un'altra. Ad esempio, "$14.20"
è accettabile nelle impostazioni locali per inglese (Stati Uniti), ma non nelle impostazioni locali per il francese.