Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.javascript > #3065

Re: Formatage de nombre

From Olivier Miakinen <om+news@miakinen.net>
Newsgroups fr.comp.lang.javascript
Subject Re: Formatage de nombre
Date 2016-08-22 16:05 +0200
Organization There's no cabale
Message-ID <npf0rb$bpf$1@cabale.usenet-fr.net> (permalink)
References <nocrhv$rgj$1@usenet.pasdenom.info> <57aa4592$0$7969$426a34cc@news.free.fr> <nodp6v$sj5$1@usenet.pasdenom.info>

Show all headers | View raw


Bonjour,

Le 10/08/2016 01:32, Gloops a écrit :
> 
> Je m'étais figuré que 0.1 + 0.2 était la blague potache des créateurs de 
> Javascript, et que pour le reste ils allaient se tenir à carreau.

Ce n'est pas une blague, c'est juste le prix à payer quand on utilise
des nombres décimaux représentés sous forme binaire (représentation
IEEE754 sur 64 bits dans le cas de JavaScript).

0.1 (décimal) =
0.00011001100110011001100110011001100110011001100110011010 (ieee754)

3 × 0.1 (décimal) =
0.00100110011001100110011001100110011001100110011001100111 (ieee754)
= 0.30000000000000004 (décimal)

0.3 (décimal) =
0.00100110011001100110011001100110011001100110011001100110 (ieee754)


Mais quand on a besoin de manipuler des nombres décimaux, c'est-à-dire
où toutes les décimales à partir d'un certain rang sont nulles, la
plupart du temps cela revient à manipuler des nombres entiers, quitte
à les diviser par une puissance de 10 au moment de l'affichage. Par
exemple, au lieu de calculer des sommes en euros avec deux chiffres
après la virgule, il suffit de calculer ces mêmes sommes en centimes
d'euros, sans virgule : 3,50 € = 350 centimes.

En effet, il faut savoir que *tous* les nombres entiers compris entre
-9007199254740992 et +9007199254740992 sont représentables dans IEEE754
64 bits (et donc dans JavaScript) sans aucune erreur d'arrondi. Cela
devrait suffire pour la plupart des besoins...

-- 
Olivier Miakinen

Back to fr.comp.lang.javascript | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Formatage de nombre Gloops <gloops@zailes.invalid.org.invalid> - 2016-08-09 17:06 +0200
  Re: Formatage de nombre SAM <stephanemoriaux.NoAdmin@wanadoo.fr.invalid> - 2016-08-09 23:05 +0200
    Re: Formatage de nombre Gloops <gloops@zailes.invalid.org.invalid> - 2016-08-10 01:21 +0200
    Re: Formatage de nombre Gloops <gloops@zailes.invalid.org.invalid> - 2016-08-10 01:32 +0200
      Re: Formatage de nombre Olivier Miakinen <om+news@miakinen.net> - 2016-08-22 16:05 +0200
        Re: Formatage de nombre Gloops <gloops@zailes.invalid.org.invalid> - 2016-08-22 20:16 +0200
          Re: Formatage de nombre Olivier Miakinen <om+news@miakinen.net> - 2016-08-22 22:58 +0200
            Re: Formatage de nombre Gloops <gloops@zailes.invalid.org.invalid> - 2016-08-23 14:50 +0200

csiph-web