Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Cherche doc sur division

4 réponses
Avatar
Do Re Mi chel La Si Do
Bonjour !

Je cherche de la doc, sur :
from __future__ import division

Ce module (module ou pragma ?) a l'air de convertir les divisions entières
en division décimales.
Mais il a semblerait avoir certaines limites, que j'aimerais bien connaître.

Voici un exemple de test :

qf='''
a=7
b=5
c=a/b'''
exec(qf,globals(),globals())
print c #-> donne 1

qf='''from __future__ import division
a=7
b=5
c=a/b'''
exec(qf,globals(),globals())
print c #-> donne 1.4


Une idée, où trouver de la doc ?

@+

Michel Claveau




PS :
1) j'ai utilisé "exec" pour limiter la portée de la pseudo-instruction, sans
créer des modules.

2) exemple de limite :
qf='''
a=1234567890123456789012345678907
b=5
c=a/b'''
exec(qf,globals(),globals())
print c

qf='''from __future__ import division
a=1234567890123456789012345678907
b=5
c=a/b'''
exec(qf,globals(),globals())
print c
On perd la précision "longue".

4 réponses

Avatar
Hervé Cauwelier
Bonjour !

Je cherche de la doc, sur :
from __future__ import division


Regarde dans les documents « What's new in Python 2.X » sur le site de
Python. La migration a commencé avec Python 2.3 je crois.

--
Hervé Cauwelier
http://www.oursours.net/

Avatar
tiissa
Je cherche de la doc, sur :
from __future__ import division


Il y en a un peu dans le PEP 238 [1] dont c'est l'implantation.

[1]http://www.python.org/peps/pep-0238.html

Avatar
Do Re Mi chel La Si Do
Merci

Cela confirme ce que j'avais trouvé. Finalement, on a intérêt à généraliser
la "floor-division" (//), pour les entiers (longs), dès à présent. Cela
évitera quelques surprises dans l'avenir.

@-salutations

Michel Claveau
Avatar
Do Re Mi chel La Si Do
Bonsoir !

Même si l'on utilise "from __future__ import division", la "floor-division"
(//) maintient la très grande précision des calculs avec des entiers (très)
longs.

Donc le chemin est tracé.

@-salutations

Michel Claveau