Merci de m'éclairer sur la réponse 544 donnée par Xcas à
floor(5.45*100)
J’attendais 545 "plus grand entier relatif inférieur ou égal au nombre considéré".
floor
Modérateur : xcasadmin
-
- Messages : 1137
- Inscription : dim. mai 20, 2007 7:09 am
- Localisation : Paris
- Contact :
Re: floor
Je pense que c'est parce que xcas travaille en base 2, donc 5.45 est une valeur approchée non exacte. En précision par defaut de <=14 chiffres j'ai
me donne un resultat négatif.
à partir de 15 chiffres les approximations sont différentes et on semble avoir plus de chance:
NB:
donne 545 mais je ne sais pas si c'est un coup de chance ou si le fait d'ajouter de nombreux 0 après 5.45 crée vraiment un objet de grande précision comme le fait approx(545/100,20)
Code : Tout sélectionner
5.45*100-545
à partir de 15 chiffres les approximations sont différentes et on semble avoir plus de chance:
Code : Tout sélectionner
a:=approx(545/100,14);
b:=approx(545/100,15);
floor(a*100);//donne 544
floor(b*100);//donne 545
Code : Tout sélectionner
floor(5.4500000000000000000*100)
Re: floor
En effet, sur des versions suffisamment recentes de Xcas, le parser tient compte du nombre de chiffres significatifs de l'input pour generer un flottant multi-precision meme si la precision du CAS est reglee par defaut a moins de 14.
Sinon, 5.45 n'est pas representable exactement en flottants en base 2 (seuls des rationnels dont le denominateur divise une puissance de 2 pas trop grande sont representables exactement), donc 5.45*100 n'est pas egal a 545.
Sinon, 5.45 n'est pas representable exactement en flottants en base 2 (seuls des rationnels dont le denominateur divise une puissance de 2 pas trop grande sont representables exactement), donc 5.45*100 n'est pas egal a 545.