Deutsch   English   Français   Italiano  
<1pjnmh9.11fmmgjvnnxyuN%josephb@nowhere.invalid>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!news.imp.ch!news.alphanet.ch!alphanet.ch!.POSTED.lfbn-poi-1-1100-187.w83-200.abo.wanadoo.fr!josephb
From: josephb@nowhere.invalid (Joseph-B)
Newsgroups: fr.comp.sys.mac.programmation
Subject: Re: Y a comme un =?ISO-8859-1?Q?d=E9faut?=
Date: Sat, 4 Dec 2021 10:14:56 +0100
Organization: Aucune
Sender: joseph25b@lfbn-poi-1-1100-187.w83-200.abo.wanadoo.fr
Message-ID: <1pjnmh9.11fmmgjvnnxyuN%josephb@nowhere.invalid>
References: <1pjmz6k.1v0nod6mfq0rkN%josephb@nowhere.invalid> <j0vto8FsgsuU1@mid.individual.net>
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Injection-Info: shakotay.alphanet.ch; posting-host="lfbn-poi-1-1100-187.w83-200.abo.wanadoo.fr:83.200.203.187";
	logging-data="4077"; mail-complaints-to="usenet@alphanet.ch"
User-Agent: MacSOUP/F-2.8.4 (6da4d6e6d0) (Mac OS X version 10.11.6 (x86))
X-NO-ARCHIVE: YES
Bytes: 2627
Lines: 42

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à où il n'est plus soutenable c'est pour (254 mod 2.54) ==> 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 !! 
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

résultats totalement inacceptables, et je ne me satisfais pas vraiment
que 
7412 % 7.412 ==> 7.815970093361102e-14
tende vers zéro

d'ailleurs, voici en dessous une fonction Modulo() écrite en
AppleScript, qui fort heureusement retourne "ZÉRO" comme reste de  (par
exemple…)
254 par 2.54 ou 
789452.18 par 789.45218
ou toutes autres valeurs du domaine de précison du copro.

on Modulo(dividende, diviseur)
   set partieEntiere to (dividende div diviseur)
   set reste to (dividende - (partieEntiere * diviseur))
   return reste
end Modulo

-- 
J. B.