Problème fractions trop grande

Résolu/Fermé
python34 - 10 août 2019 à 12:18
 python34 - 10 août 2019 à 20:30
Bonjour,

Je fais un programme concernant les équations différentielles et j'ai un problème : Lorsque le programme calcul un nombre particulier à partir de données, il affiche des fractions avec des nombres très grands inutilement. (Exemple:pour 14/3, il affiche 2627099782632789/562949953421312) Une solution pour éviter ça ?

merci d'avance

3 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 330
10 août 2019 à 13:36
Sans le code, impossible de savoir de quoi tu parles.
0
Le programme n'a pas d'importance, voici un code simple et ce qui l'affiche pour que vous compreniez mon problème:

from fraction import*
from math import*

a=1/3+1/4
print(Fraction(a))


et ça affiche: 2627099782632789/4503599627370496
0
ElementW Messages postés 4816 Date d'inscription dimanche 12 juin 2011 Statut Contributeur Dernière intervention 5 octobre 2021 1 225
10 août 2019 à 16:11
'lut, c'est du au manque de précision des nombres flottants normaux que tu obtiens avec le calcul de
a
: le nombre de chiffres derrière la virgule étant fini, le résultat du calcul (ou juste de 1/3) sera tronqué donc la fraction exacte le représentant sera longue.
Pour éviter ça il faut faire toutes tes opérations (impliquant des opérandes non représentables de manière finie en base 2) avec le type Fraction:
>>> from fractions import *
>>> a = Fraction(1, 3) + Fraction(1, 4)
>>> print(a)
7/12
0
Très bien, merci beaucoup de votre réponse
0