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


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

Re: Formatage de nombre

From Gloops <gloops@zailes.invalid.org.invalid>
Newsgroups fr.comp.lang.javascript
Subject Re: Formatage de nombre
Date 2016-08-22 20:16 +0200
Organization Serveur de salon
Message-ID <npffhb$dn4$1@usenet.pasdenom.info> (permalink)
References <nocrhv$rgj$1@usenet.pasdenom.info> <57aa4592$0$7969$426a34cc@news.free.fr> <nodp6v$sj5$1@usenet.pasdenom.info> <npf0rb$bpf$1@cabale.usenet-fr.net>

Show all headers | View raw


Le 22/08/2016 à 16:05, Olivier Miakinen a écrit :
> 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...
>


Donc, on commet une erreur d'arrondi à la fin parce que la 
représentation n'en a pas :)

Il n'y a que Javascript à faire le gag, ou je me trompe ?

Je m'étais dit que j'allais consacrer une demi-journée à comprendre 
comment se bidouille cette affaire, mais ... il faut une demi-journée 
disponible :)

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