Variabili numeriche

From Apache OpenOffice Wiki
Jump to: navigation, search

Template:EN/Documentation/BASICGuideTOC/v2

Apache OpenOffice Basic supporta cinque tipi base per l'elaborazione dei numeri:

  • Integer
  • Long Integer
  • Single
  • Double
  • Currency

Variabili intere (Integer)

Le variabili intere possono memorizzare un numero intero compreso tra -32768 e 32767. Una variabile intera può occupare fino a due byte di memoria. Il simbolo di dichiarazione del tipo è %. I calcoli che utilizzano le variabili intere sono molto rapidi e particolarmente utili per i contatori utilizzati nelle operazioni cicliche. Se si assegna un numero decimale a una variabile intera, il numero viene arrotondato per eccesso o per difetto al numero intero successivo o precedente.

Esempi di dichiarazioni di variabili intere:

Dim Variable As Integer
Dim Variable%

Variabili intere lunghe (Long)

Le variabili intere lunghe possono memorizzare valori interi compresi tra –2147483648 e 2147483647. Una variabile intera lunga può occupare fino a quattro byte di memoria. Il simbolo di dichiarazione del tipo è &. I calcoli che utilizzano le variabili intere lunghe sono molto rapidi e particolarmente utili per i contatori utilizzati nelle operazioni cicliche. Se si assegna un numero decimale a una variabile intera lunga, il numero viene arrotondato per eccesso o per difetto al numero intero successivo o precedente.

Esempi di dichiarazioni di variabili intere lunghe:

Dim Variable as Long
Dim Variable&

Variabili singole (Single)

Le variabili singole possono memorizzare qualsiasi numero decimale positivo o negativo compreso tra 3.402823 x 1038 e 1.401298 x 10-45. Una variabile singola può occupare fino a quattro byte di memoria. Il simbolo di dichiarazione del tipo è !.

In origine, le variabili singole venivano utilizzate per ridurre i tempi di elaborazione richiesti dalle variabili doppie, più precise. Tuttavia, queste considerazioni sulla velocità non sono oggi più applicabili, riducendo così la necessità di utilizzare le variabili singole.

Esempi di dichiarazioni di variabili singole:

Dim Variable as Single
Dim Variable!

Variabili doppie (Double)

Le variabili doppie possono memorizzare qualsiasi numero decimale positivo o negativo compreso tra 1.79769313486232 x 10308 e 4.94065645841247 x 10-324. Una variabile doppia può occupare fino a otto byte di memoria. Le variabili doppie sono adatte per i calcoli precisi. Il simbolo di dichiarazione del tipo è #.

Esempi di dichiarazioni di variabili doppie:

Dim Variable As Double
Dim Variable#

Variabili di tipo valuta (Currency)

Le variabili valuta differiscono dagli altri tipi di variabili per la modalità di gestione dei valori. Il separatore decimale è fisso e seguito da quattro posizioni decimali. La variabile può contenere fino a 15 numeri prima del separatore decimale. Una variabile di tipo valuta può memorizzare qualsiasi valore compreso tra -922337203685477.5808 e +922337203685477.5807 e occupare fino a otto byte di memoria. Il simbolo di dichiarazione del tipo è @.

Le variabili per valuta sono destinate principalmente a calcoli finanziari che producono errori di arrotondamento non prevedibili a causa dell'uso di numeri decimali.

Esempi di dichiarazioni di variabili per valuta:

Dim Variable As Currency
Dim Variable@

Virgola mobile (Float)

I tipi Single, Double e Currency sono spesso citati collettivamente come tipi Float o tipi di numero in virgola mobile. Possono contenere valori numerici con parti decimali di lunghezza variabile.

È possibile dichiarare variabili di tipo Float. Il tipo effettivo della variabile (Single, Long, Currency) viene determinato quando alla variabile viene assegnato un valore:

Dim A As Float
A = 1210.126

Indicazione di numeri espliciti

I numeri possono essere presentati in modi diversi, ad esempio in formato decimale o in notazione scientifica, o persino con una base diversa dal sistema decimale. Ai caratteri numerici in Apache OpenOffice Basic si applicano le seguenti regole:

Numeri interi

Il metodo più semplice è quello di utilizzare gli interi, che vengono elencati nel testo sorgente senza la virgola (o il punto) di separazione delle migliaia:

Dim A As Integer
Dim B As Float
 
A = 1210
B = 2438

I numeri possono essere preceduti da un segno più (+) o da un segno meno (-) (con o senza spazio tra essi):

Dim A As Integer
Dim B As Float
 
A = + 121
B = - 243

Numeri decimali

Per l'inserimento dei numeri decimali, utilizzate il punto (.) come separatore (punto decimale). Questa regola garantisce che i testi sorgente possano essere trasferiti da un paese all'altro senza conversione.

Dim A As Integer
Dim B As Integer
Dim C As Float
 
A = 1223.53      ' is rounded
B = - 23446.46   ' is rounded
C = + 3532.76323

Potete inoltre usare il segno più (+) o meno (-) come prefisso per i numeri decimali (anche in questo caso con o senza spazi).

Se a una variabile intera viene assegnato un numero decimale, Apache OpenOffice Basic arrotonda il valore per eccesso o per difetto.

Stile di scrittura esponenziale

Apache OpenOffice Basic permette di specificare i numeri nello stile di scrittura esponenziale, ad esempio, potete scrivere 1.5e-10 per il numero 1.5 x 10-10 (0.00000000015). La lettera "e" può essere minuscola o maiuscola, con o senza il segno più (+) come prefisso.

Di seguito sono riportati alcuni esempi di numeri in formato esponenziale corretti ed errati:

Dim A As Double
 
A = 1.43E2    ' Correct
A = + 1.43E2  ' Correct (space between plus and basic number)
A = - 1.43E2  ' Correct (space between minus and basic number)
A = 1.43E-2   ' Correct (negative exponent)
A = 1.43E -2  ' Incorrect (spaces not permitted within the number)
A = 1,43E-2   ' Incorrect (commas not permitted as decimal points)
A = 1.43E2.2  ' Incorrect (exponent must be a whole number)

È possibile osservare che nel primo e nel terzo degli esempi errati non viene generato alcun messaggio di errore anche se le variabili restituiscono valori errati. L'espressione

A = 1.43E -2

è interpretata come 1.43 meno 2, che corrisponde al valore –0.57. Tuttavia, il valore previsto era 1.43 x 10-2 (corrispondente a 0.0143). Con il valore

A = 1.43E2.2

Apache OpenOffice Basic ignora la parte dell'esponente dopo il punto decimale e interpreta l'espressione come

A = 1.43E2

Valori esadecimali

Nel sistema esadecimale (sistema a base 16), un numero a 2 cifre corrisponde precisamente a un byte. Ciò consente di gestire i valori in modo da riflettere più da vicino l'architettura della macchina. Nel sistema esadecimale, i numeri da 0 a 9 e le lettere da A a F sono utilizzati come valori numerici. La lettera A corrisponde al numero decimale 10, mentre la lettera F rappresenta il numero decimale 15. Apache OpenOffice Basic permette di utilizzare valori esadecimali interi, purché siano preceduti da &H.

Dim A As Long
A = &HFF ' Hexadecimal value FF, corresponds to the decimal value 255
A = &H10 ' Hexadecimal value 10, corresponds to the decimal value 16

Valori in ottali

Apache OpenOffice Basic comprende anche il sistema ottale (sistema a base 8) che utilizza i numeri da 0 a 7. È necessario utilizzare numeri interi preceduti da &O.

Dim A As Long
A = &O77 ' Octal value 77, corresponds to the decimal value 63
A = &O10 ' Octal value 10, corresponds to the decimal value 8
Content on this page is licensed under the Public Documentation License (PDL).
Personal tools