Variables numériques

From Apache OpenOffice Wiki
Jump to: navigation, search
doc OOo
Book.png

Apache OpenOffice Basic prend en charge cinq types de base pour traiter les nombres :

  • entier ;
  • entier long ;
  • simple ;
  • double ;
  • monétaire.

Variables de type entier

Les variables de type entier (Integer) peuvent stocker tout nombre entier compris entre - 32 768 et 32 767. Un nombre entier peut occuper jusqu'à deux octets de mémoire. Le signe % permet de déclarer une variable de type entier. Les calculs utilisant des variables entières sont très rapides et particulièrement utiles pour les compteurs de boucles. Si vous assignez un nombre à virgule flottante à une variable de type entier, il est arrondi au nombre entier le plus proche.

Exemples de déclaration pour des variables entières :

Dim Variable As Integer
Dim Variable%

Variables de type entier long

Les variables de type entier long (Long) peuvent stocker tout nombre entier compris entre – 2 147 483 648 et 2 147 483 647 et peuvent occuper jusqu'à quatre octets de mémoire. Le signe & permet de déclarer une variable de type entier long. Les calculs utilisant des variables de type entier long sont très rapides et particulièrement utiles pour les compteurs de boucles. Si vous assignez un nombre à virgule flottante à une variable de type entier long, il est arrondi au nombre entier le plus proche.

Exemples de déclaration pour des variables de type entier long :

Dim Variable as Long
Dim Variable&

Variables de type simple

Les variables de type simple (Single) peuvent stocker tout nombre à virgule flottante positif ou négatif compris entre 3.402823 x 1038 et 1.401298 x 10-45. Une variable de type simple peut occuper jusqu'à quatre octets de mémoire. Le symbole ! permet de déclarer une variable de type simple.

À l'origine, les variables de type simple servaient à réduire le temps de calcul exigé par les variables doubles, plus précises. Cependant, ces considérations de rapidité ne sont plus vraiment pertinentes, ce qui réduit l'intérêt des variables de type simple.

Exemples de déclaration pour des variables simples :

Dim Variable as Single
Dim Variable!

Variables de type double

Les variables de type double (Double) peuvent stocker tout nombre à virgule flottante positif ou négatif compris entre 1.79769313486232 x 10308 et 4.94065645841247 x 10-324. Une variable de type double peut occuper jusqu'à huit octets de mémoire. Les variables doubles peuvent être utilisées pour des calculs précis. Le signe # permet de déclarer une variable de type double.

Exemples de déclarations de variables doubles :

Dim Variable As Double
Dim Variable#

Variables monétaires

Les variables monétaires (Currency) diffèrent des autres types de variables par la manière dont elles gèrent les valeurs. Le signe décimal est fixe et suivi de quatre décimales. La variable peut compter jusqu'à 15 chiffres devant le signe décimal. Une variable monétaire peut stocker toute valeur comprise entre - 922 337 203 685 477.5808 et +922 337 203 685 477.5807 et peut occuper jusqu'à huit octets de mémoire. Le signe @ permet de déclarer une variable monétaire.

Les variables monétaires sont surtout destinées aux calculs financiers qui génèrent des erreurs d'arrondi imprévisibles dues à l'emploi de nombres à virgule flottante.

Exemples de déclaration de variables monétaires :

Dim Variable As Currency
Dim Variable@

Flottants

Les variables de type simple et de type double et les variables monétaires sont souvent appelées flottants ou nombres à virgule flottante. En effet, elles peuvent contenir des valeurs numériques à fractions décimales de diverses longueurs. Les séparateurs de décimale semblent donc pouvoir "flotter" entre les chiffres.

Il est possible de déclarer des variables en indiquant qu'elle sont de type flottant. Le type réel de la variable (simple, long ou monétaire) est déterminé lorsqu'une valeur lui est assignée :

Dim A As Float
A = 1210.126

Spécification de nombres explicites

Les nombres peuvent être représentés de différentes manières, par exemple au format décimal ou en notation scientifique, voire dans une base différente du système décimal. Les règles suivantes s'appliquent aux caractères numériques dans Apache OpenOffice Basic :

Nombres entiers

La méthode la plus simple consiste à utiliser des nombres entiers. Ils sont représentés dans le texte source, sans espace pour séparer le chiffre des milliers :

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

Les nombres peuvent être précédés d'un signe plus (+) ou moins (-) (avec ou sans espace après le signe) :

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

Nombres décimaux

Lorsque vous saisissez un nombre décimal, séparez la partie entière de la partie décimale à l'aide d'un point (.). Ainsi, les textes sources peuvent être transférés d'un pays à un autre sans conversion.

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

Vous pouvez utiliser les signes "+" et "-" comme préfixes aux nombres décimaux (ici aussi, avec ou sans espace).

Si vous assignez un nombre décimal à une variable entière, Apache OpenOffice Basic l'arrondit par excès ou par défaut.

Notation exponentielle

Apache OpenOffice Basic permet d'écrire les nombres en notation exponentielle. Vous pouvez par exemple écrire 1.5e-10 pour représenter le nombre 1.5 x 10-10 (0.00000000015). La lettre "e" peut être majuscule ou minuscule et précédée ou non d'un signe plus (+).

Des exemples corrects et incorrects de nombres au format exponentiel sont répertoriés ci-dessous :

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)

Notez que les premier et troisième exemples incorrects ne génèrent aucun message d'erreur, bien qu'ils retournent des valeurs incorrectes. L'expression :

A = 1.43E -2

est interprétée comme 1.43 moins 2, soit -0.57. C'est pourtant la valeur 1.43 x 10-2 (correspondant à 0.0143) qui était attendue. Avec la valeur :

A = 1.43E2.2

Apache OpenOffice Basic ignore la partie de l'exposant après le point et considère l'expression comme étant :

A = 1.43E2

Valeurs hexadécimales

Dans le système hexadécimal (base 16), un nombre à deux chiffres correspond exactement à un octet. Ceci permet de gérer les nombres d'une manière reflétant plus fidèlement l'architecture de la machine. Dans le système hexadécimal, les nombres sont représentés au moyen des chiffres de 0 à 9 et des lettres de A à F. La lettre A correspond au nombre 10 en décimal et la lettre F au nombre 15. Pour utiliser des valeurs hexadécimales pour les nombres entiers dans Apache OpenOffice Basic , il suffit de les faire précéder par &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

Valeurs octales

Apache OpenOffice Basic comprend également le système octal (base 8), qui utilise les chiffres 0 à 7. Dans cette base, les valeurs doivent être précédées de &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