Re: Y a comme un défaut

Liste des GroupesRevenir à fcsm programmation 
Sujet : Re: Y a comme un défaut
De : om+news (at) *nospam* miakinen.net (Olivier Miakinen)
Groupes : fr.comp.sys.mac.programmation
Date : 04. Dec 2021, 13:48:11
Autres entêtes
Organisation : There's no cabale
Message-ID : <sofkhr$p39$1@cabale.usenet-fr.net>
References : 1 2 3
User-Agent : Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0 SeaMonkey/2.49.4
Bonjour,

Le 04/12/2021 10:14, Joseph-B a écrit :
pehache <pehache.7@gmail.com> wrote:
 
Il n'y a pas forcément de défaut, calculer des restes en arithmétique
flottante est forcément casse-gueule quand le résultat de la division
est censé être une valeur entière. Quand tu écris "2,54" (ou n'importe
quelle autre valeur) la représentation en machine est une approximation
de cette valeur, ce n'est pas la valeur exacte (sauf coup de chance).
 
Ton argument serait recevable, encore que très dérangeant dans les
calculs pratiques, pour  (254 mod 25.4) ==> 1.4210854715202E-14

L'argument *est* recevable et *est* dérangeant mais c'est un problème
très connu depuis toujours avec les représentations des nombres en
binaire avec virgule flottante.

La solution consiste à travailler en nombres entiers dans une unité de
mesure suffisamment petite pour tous tes besoins. Par exemple, si tu
as besoin de représenter exactement 2,54 cm, il faut que ton unité de
mesure soit aussi petite que le dixième de millimètre. Pour être sûr
de ne pas avor de problème, tu peux même travailler au micron (non, je
n'ai pas parlé de variant).

Tu coup, tes 2,54 cm par pouce, ça devient 25400 µm par pouce et c'est
tout à fait gérable en nombres entiers.

Là où il n'est plus soutenable c'est pour (254 mod 2.54) ==> 2.54

C'est la même chose. La valeur la plus proche de zéro doit être un
nombre négatif, probablement quelque chose comme -1.4210854715202E-14.
Pour en faire un nombre entre 0 et 2,54 le résultat calculé est alors
2,54 - 1.4210854715202E-14, et à l'affichage ça donne 2,54.

Si le copro-arithmétique du Mac n'a pas été écrit pour retourner la
valeur correcte (± epsilon d'après ton argument) de la FONCTION "RESTE"
d'une divison, il y a un GROS SOUCI !!

Le Mac n'est pas en cause, ce qui est en cause est inhérent aux calculs
en nombres flottants binaires, probablement IEEE 754. Passe en nombres
entiers et tes problèmes disparaitront.

Pour preuve, toujours dans l'éditeur de script si j'essaie cette fois en
javascript
 
254 % 2.54 ==> 2.5399999999999965
ou
7412 % 74.12 ==> 74.11999999999955

C'est la même chose.

résultats totalement inacceptables

C'est à toi de ne *pas* les accepter, en utilisant des nombres entiers.
Ou alors il te faut une représentation décimale et non pas binaire, mais
je ne sais pas si c'est utilisable simplement dans tes programmes.


--
Olivier Miakinen

Date Sujet#  Auteur
4 Dec 21 * Y a comme un défaut31Joseph-B
4 Dec 21 +* Re: Y a comme un défaut17pehache
4 Dec 21 i`* Re: Y a comme un défaut16Joseph-B
4 Dec 21 i +* Re: Y a comme un défaut4Olivier Miakinen
4 Dec 21 i i`* Re: Y a comme un défaut3Joseph-B
4 Dec 21 i i `* Re: Y a comme un défaut2Olivier Miakinen
4 Dec 21 i i  `- Calculette IEEE754 (was: Y a comme un défaut)1Olivier Miakinen
4 Dec 21 i +* Re: Y a comme un défaut10pehache
4 Dec 21 i i`* Re: Y a comme un défaut9Joseph-B
4 Dec 21 i i +* Re: Y a comme un défaut3M.V.
4 Dec 21 i i i`* Re: Y a comme un défaut2Joseph-B
4 Dec 21 i i i `- Re: Y a comme un défaut1M.V.
4 Dec 21 i i +- Re: Y a comme un défaut1Benoit
4 Dec 21 i i `* Re: Y a comme un défaut4pehache
4 Dec 21 i i  `* Re: Y a comme un défaut3Joseph-B
4 Dec 21 i i   +- Re: Y a comme un défaut1pehache
5 Dec 21 i i   `- Re: Y a comme un défaut1JPP
5 Dec 21 i `- Re: Y a comme un défaut1Julien Salort
4 Dec 21 +* Re: Y a comme un défaut11Fleuger
4 Dec 21 i+* Re: Y a comme un défaut4Fleuger
4 Dec 21 ii`* Re: Y a comme un défaut3M.V.
4 Dec 21 ii `* Re: Y a comme un défaut2Fleuger
4 Dec 21 ii  `- Re: Y a comme un défaut1M.V.
4 Dec 21 i`* Re: Y a comme un défaut6Joseph-B
4 Dec 21 i +* Re: Y a comme un défaut4M.V.
4 Dec 21 i i`* Re: Y a comme un défaut3Joseph-B
4 Dec 21 i i +- Re: Y a comme un défaut1pehache
4 Dec 21 i i `- Re: Y a comme un défaut1M.V.
4 Dec 21 i `- Re: Y a comme un défaut1M.V.
4 Dec 21 +- Re: Y a comme un défaut1M.V.
4 Dec 21 `- Re: Y a comme un défaut1JPP

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal