Il
est
fréquent
que
de
simples
fractions
décimales
telles
que
0.1
ou
0.7
ne
puissent
être
converties
au
format
interne
binaire
sans
une
légère
perte
de
précision
.
Cela
peut
conduire
à
des
résultats
étonnants
:
par
exemple
,
floor(
(0.1+0.7)*10
)
retournera
7
au
lieu
de
8
car
le
résultat
de
la
représentation
interne
est
7.9999999999..
.
.
Tout
ceci
est
lié
au
fait
qu'
il
est
impossible
d
'exprimer
certaines
fractions
en
un
nombre
fini
de
chiffres
.
Par
exemple
1
/
3
s
'
écrira
0.3333333..
.
en
mode
décimal
.
Ne
faites
donc
jamais
confiance
aux
nombres
à
virgule
jusqu'
à
leur
dernière
décimale
,
et
ne
comparez
jamais
ces
nombres
avec
l'opérateur
d
'égalité
.
Si
vous
avez
besoin
d
'
une
précision
particulière
,
reportez-vous
au
traitement
des
nombres
de
grande
taille
avec
les
librairies
BC
ou
GMP
.
|