OVH Cloud OVH Cloud

Calculette et copier coller

14 réponses
Avatar
yvon.thoravalNO-SPAM
si je fais la bête soustraction suivante :

104.46 - 88.61 la calculette m'affiche bien :

15.85

MAIS, le copier-coller me donne :

15.84999999999999

il y aurait donc une conversion interne pour une soustraction décimale
????

--
yt

10 réponses

1 2
Avatar
benoit.sansspam
Yvon Thoraval wrote:

15.84999999999999

il y aurait donc une conversion interne pour une soustraction décimale
????


Ce doit être les débuts de la programmation sur 64 bits qui les fout
dedans. Mais ne t'en fait pas, ils vont y arriver ;-)

--
Nos émissions ont pour vocation de rendre le cerveau disponible :
c'est-à-dire de le divertir, de le détendre pour le préparer entre
deux pubs. Ce que nous vendons à Coca-Cola, c'est du temps de cerveau
humain disponible. (P. Le Lay - TF1)

Avatar
Paul Gaborit
À (at) Tue, 7 Sep 2004 08:05:36 +0200,
(Yvon Thoraval) écrivait (wrote):
si je fais la bête soustraction suivante :

104.46 - 88.61 la calculette m'affiche bien :

15.85

MAIS, le copier-coller me donne :

15.84999999999999

il y aurait donc une conversion interne pour une soustraction décimale
????


Dans un terminal, vous pouvez tester les commandes suivantes :

% perl -le 'print sprintf("%g", 104.46 - 88.61)'
15.85
% perl -le 'print sprintf("%.15g", 104.46 - 88.61)'
15.85
% perl -le 'print sprintf("%.16g", 104.46 - 88.61)'
15.84999999999999
% perl -le 'print sprintf("%.17g", 104.46 - 88.61)'
15.849999999999994

Vous venez de découvrir que les ordinateurs comptent en base 2 et que certains
nombres ont une représentation finie en base 10 mais pas en base 2.

La calculette peut elle aussi vous le montrer : demandez-lui un affichage avec
16 décimales de précision et vous aurez le résultat du copier/coller.

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>

Avatar
yvon.thoravalNO-SPAM
Paul Gaborit wrote:

Vous venez de découvrir que les ordinateurs comptent en base 2 et que certains
nombres ont une représentation finie en base 10 mais pas en base 2.


NON, pas du tout, ça je le savait...

La calculette peut elle aussi vous le montrer : demandez-lui un affichage avec
16 décimales de précision et vous aurez le résultat du copier/coller.


Je ne comprend pas pourquoi l'affichage est différent du copier-coller,
le copier-coller étant une manip "visuelle", je n'ai que faire de la
représentation interne de la machine. Apple a donc fait un mauvais
choix, me semble-t'il, en choisissant d'afficher avec un arrondi, qui
donne le résultat juste, mais de donner pour résultat au copier-coller
une traduction décimale de la représentation interne, soit un résultat
faux.

Cette calculette n'a donc pas été prévue pour faire des opérations
simples de type comptable...
--
yt

Avatar
yvon.thoravalNO-SPAM
José Campos <jose.campos+ wrote:

Dans l'ancien temps, il était d'usage de dire que les machines
avaient du mal avec les nombres décimaux et qu'il valait mieux faire :
(10446 - 8861)/100


C'est ce qu'on devrait pouvoir demander à la machine amha...

Àmha, les machines raisonnent toujours en binaire ;-)


Ca d'accord, mais il y a aussi des algo pour faire des calculs
décimaux... justes ;)

Ce n'est pas prévu, bizarement....

--
yt

Avatar
Patrick Stadelmann
In article <1gjqiyl.117ffbj1c7z2ceN%,
(Yvon Thoraval) wrote:

Je ne comprend pas pourquoi l'affichage est différent du copier-coller,
le copier-coller étant une manip "visuelle", je n'ai que faire de la
représentation interne de la machine.


Si ton but est de coller dans Word, oui. Par contre si tu souhaites
utiliser le résultat pour poursuivre le calcul, il vaut mieux conserver
le maximum de précision. Idéalement, il faudrait avoir le choix.

Apple a donc fait un mauvais
choix, me semble-t'il, en choisissant d'afficher avec un arrondi, qui
donne le résultat juste, mais de donner pour résultat au copier-coller
une traduction décimale de la représentation interne, soit un résultat
faux.


Le fait que l'arrondi donne le résultat juste est un hasard, ça n'est
pas forcément le cas. Par exemple : 1 - 0.00000000000001 affiche 1 qui
est "faux" alors que le copier-coller donne 0.99999999999999 qui lui est
exact.

Patrick
--
Patrick Stadelmann

Avatar
yvon.thoravalNO-SPAM
Patrick Stadelmann wrote:

Idéalement, il faudrait avoir le choix.


C'est ce choix qui manque amha...

passeke le "décimal comptable" c'est de l'entier en qqsorte...
--
yt

Avatar
Paul Gaborit
À (at) Tue, 7 Sep 2004 10:01:24 +0200,
(Yvon Thoraval) écrivait (wrote):
Patrick Stadelmann wrote:

Idéalement, il faudrait avoir le choix.


C'est ce choix qui manque amha...

passeke le "décimal comptable" c'est de l'entier en qqsorte...


C'est le seul choix possible : faire ses calculs en centimes (et donc en
entier).

--
Paul Gaborit - <http://www.enstimac.fr/~gaborit/>


Avatar
yvon.thoravalNO-SPAM
Paul Gaborit wrote:

C'est le seul choix possible


OUAIS :)
--
yt

Avatar
ludovic.cynomys
Paul Gaborit wrote:

Vous venez de découvrir que les ordinateurs comptent en base 2 et que certains
nombres ont une représentation finie en base 10 mais pas en base 2.


;-)

Dans le temps, Microsoft (pas taper) avait sorti DEUX versions de son
Basic, dont une exprès pour les calculs décimaux...

Ceci dit, quand Apple est passée au PowerPC, les performances de l'unité
de calcul ont été revues *à la baisse*, d'après ceux qui savent ;-)

--
(-8 en direct du terrier

Avatar
blanc
Ludovic Cynomys wrote:

Dans le temps, Microsoft (pas taper) avait sorti DEUX versions de son
Basic, dont une exprès pour les calculs décimaux...


Borland l'avait fait aussi pour son turbo pascal...

JPaul.

--
/==/==- Jean-Paul BLANC
/ /--/--// quelque-part (somewhere)
|/| L | en (in)
/|| = ||| FRANCE

1 2