Re: Y a comme un défaut

Liste des GroupesRevenir à fcsm programmation 
Sujet : Re: Y a comme un défaut
De : mv (at) *nospam* gmail.com.invalid (M.V.)
Groupes : fr.comp.sys.mac.programmation
Date : 04. Dec 2021, 16:49:53
Autres entêtes
Organisation : M.V. & Co
Message-ID : <sofv6h$psa$1@dont-email.me>
References : 1 2 3 4 5
User-Agent : MacCafe/2.07b1 (macOS 10.14.6 (18G9323) - MacBookAir7,2)
[Supersedes: <sofuv0$lof$1@dont-email.me>]

Le 4 décembre 2021 à 15 h 25, Joseph-B a tenu les propos suivants :

Pour reprendre l'exemple de MV,
(2.001 -2) avec une calculette à moins d'un euro retournera 0,001
Ouais, mais c'est moche et trivial tandis que
(2.001 -2) dans AppleScript retournera 9.9999999999989E-4

En même temps on n'est pas loin de la vérité mathématique car, si tu te
rappelles tes cours de math du siècle dernier :
1 = 0,99999999999999999999999999999999… (ad libitum) ! ;-)

Ceci dit, je partage ton courroux (coucou) surtout quand je vois le
script que j'ai dû pondre pour obtenir un résultat correct (jusqu'à
preuve du contraire) pour éviter des résultats à la mords-moi le nœud.
J'en suis là :
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
set diviseur to 25.4
set serie to {0.254, 2.54, 25.4001, 254, 2540}
set restes to {}
set text item delimiters to " - "
set commentaire to "Restes de la division par " & (diviseur as text) & "  de" & linefeed & (serie as string)

set exp0 to exp_value(diviseur)
log "exp0 : " & exp0

repeat with value in serie
  set exp1 to exp_value(value)
  log "exp1 : " & exp1
 
-- pour transformer 25.4 et 25.4001 par exemple en 254000 et 254001
  if exp1 ≥ exp0 then
    set exp to exp1
  else
    set exp to exp0
  end if
 
  set new_value to (value * (10 ^ exp)) as integer
 
  set new_diviseur to (diviseur * (10 ^ exp)) as integer
 
  set reste to (new_value mod new_diviseur) / (10 ^ exp)
  if reste = (reste as integer) then set reste to reste as integer
 
  copy reste to the end of restes
end repeat
set text item delimiters to " - "
display alert (restes's every item as text) message commentaire

-- combien de chiffres dans la partie décimale
on exp_value(nombre)
  set nombre_str to nombre as string
  log "nombre_str : " & nombre_str
  set text item delimiters to ","
  try
    set exp to count characters of second text item of nombre_str
  on error
    set exp to 0
  end try
  return exp
end exp_value
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
--
Michel VAUQUOIS - <http://michelvauquois.fr>


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