[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Top] [Table des matières] [Index] [ ? ]

3.2 Nombres à virgule flottante basiques

Les nombres à virgule flottante sont utiles pour la représentation des nombres qui ne sont pas intégraux. Le champ précis des nombres à virgule flottante est propre à la machine; c'est pareil que le champ du type de données de C double sur la machine que vous employée.

La syntaxe de lecture pour des nombres à virgule flottante exige une virgule décimale (avec au moins un chiffre suivant), un exposant, ou les deux. Par exemple, ‘1500.0’, ‘15e2’, ‘15.0e2’, ‘1.5e3’, et ‘.15e4’ sont cinq manières d'écrire le nombre à virgule flottante dont la valeur est 1500. Ils sont tous équivalents. Vous pouvez également employer un signe moins pour écrire des nombres négatifs à virgule flottante, comme dans ‘- 1.0’.

La plupart des ordinateurs modernes soutiennent la norme à virgule flottante IEEE, qui prévoit plus l'infini et moins l'infini comme valeurs à virgule flottante. Elle prévoit également une classe de valeurs appelées NaN ou “not-a-number”; les fonctions numériques renvoient de telles valeurs dans les cas où il n'y a aucune réponse correcte. Par exemple, (/ 0.0 0.0) renvoie NaN. Pour des buts pratiques, il n'y a aucune différence significative entre différentes valeurs de NaN en Emacs Lisp, et il n'y a aucune règle pour la valeur NaN à utiliser dans un cas particulier, ainsi Emacs Lisp n'essaye pas de les distinguer (mais rapporte le signal, si vous l'affichez). Voici les syntaxes lues pour ces valeurs à virgule flottante spéciales:

positive infinity

1.0e+INF

negative infinity

-1.0e+INF

Not-a-number

0.0e+NaN’ ou ‘-0.0e+NaN’.

Pour examiner si une valeur à virgule flottante est NaN, le comparer à lui-même en employant =. Il renvoie nil pour NaN, et t pour n'importe quelle autre valeur à virgule flottante.

La valeur -0.0 est distinguable de l'ordinaire zéro dans la virgule flottante de IEEE, mais l'Emacs Lisp equal et = les considèrent comme valeurs égales.

Vous pouvez employer logb pour extraire l'exposant binaire d'un nombre à virgule flottante (ou estimer le logarithme d'un nombre entier):

Function: logb number

Cette fonction renvoie l'exposant binaire de number. Plus précisément, la valeur est le logarithme de number en base 2, arrondie vers le bas à un nombre entier.

 
(logb 10)
     ⇒ 3
(logb 10.0e20)
     ⇒ 69

[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Top] [Table des matières] [Index] [ ? ]

Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.