IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

long int too large to convert to float [Python 2.X]


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Par défaut long int too large to convert to float
    bonjour,

    J'ai un petit problème avec l’exécution de mon programme ( comme indiquer dans le titre). Quand j’exécute mon programme :

    factorielle() étant une def non afficher ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    print('n=')
    	n=input()
    	i=1
     
    	while i != 0:
    		a = factorielle(n)
    		b = a + 1
    		c = math.sqrt(b)
    		if isinstance( c , int ):
    			print (c)
    			print (n)
     
    		else:
    			n += 1
    			i += 1
    cela me donne l'erreur suivante :

    Traceback (most recent call last):
    File "C:\Users\ind00315\hors sauvegarde\privé\maths\brocrat 1.py", line 26, in <module>
    c = math.sqrt(b)
    OverflowError: long int too large to convert to float

    est-ce que c est trop grand? problème de mémoire?

    merci

  2. #2
    Membre Expert
    Profil pro
    Développeur en systèmes embarqués retraité
    Inscrit en
    Mars 2006
    Messages
    952
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 952
    Par défaut
    Salut,

    Il faudrait poster un bout de code autonome qui reproduit le problème... Là, il manque trop de bouts pour s'y intéresser (par exemple les imports et la fonction factorielle).

    A+

    Pfeuh

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    import math
     
    def factorielle(n):
     
    	fac = 1
     
    	while n != 0:
     
    		fac *= n
     
    		n -= 1
    		#print (fac)
    	return fac
     
     
    if __name__ == "__main__" :
     
    	print('n=')
    	n=input()
    	i=1
     
    	while i != 0:
    		a = factorielle(n)
    		b = a + 1
    		c = math.sqrt(b)
    		if isinstance( c , int ):
    			print (c)
    			print (n)
    			print ('Trouver !!!! ')
     
    		else:
    			n += 1
    			i += 1
    voila le code en entier

    le truc c'est que je ne sais pas a quel valeur il va s’arrêter, il doit trouver un solution avec des nombres entiers

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    >>> import sys
    >>> sys.float_info.max
    1.7976931348623157e+308
    >>>
    On ne sait pas représenter des floats plus grand que...
    Ce qui fait quand même pas mal de chiffres.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par Sh0rtY Voir le message
    bonjour,

    J'ai un petit problème avec l’exécution de mon programme ( comme indiquer dans le titre). Quand j’exécute mon programme :

    factorielle() étant une def non afficher ici

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    print('n=')
    	n=input()
    	i=1
     
    	while i != 0:
    		a = factorielle(n)
    		b = a + 1
    		c = math.sqrt(b)
    		if isinstance( c , int ):
    			print (c)
    			print (n)
     
    		else:
    			n += 1
    			i += 1
    cela me donne l'erreur suivante :

    Traceback (most recent call last):
    File "C:\Users\ind00315\hors sauvegarde\privé\maths\brocrat 1.py", line 26, in <module>
    c = math.sqrt(b)
    OverflowError: long int too large to convert to float

    est-ce que c est trop grand? problème de mémoire?

    merci
    Bonjour,
    Dans mes souvenirs, un réel ne peut dépasser 1e308.
    Si le carré d'un entier est supérieur à cela, sa racine ne peut pas être calculée en réel…
    Sur la console, ce n'est pas très compliqué de trouver la limite!!
    Clodion

    PS: sinon il est toujours possible d'extraire une racine carrée "à la main" et de vérifier ainsi qu'elle est ou non entière!

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Par défaut
    Donc en gros, le calcule que je veux faire donne un résultat trop gros pour de la programmation?

  7. #7
    Membre émérite
    Homme Profil pro
    Aucune activité
    Inscrit en
    Novembre 2011
    Messages
    505
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Aucune activité

    Informations forums :
    Inscription : Novembre 2011
    Messages : 505
    Par défaut
    Citation Envoyé par Sh0rtY Voir le message
    Donc en gros, le calcule que je veux faire donne un résultat trop gros pour de la programmation?
    Bonjour,
    Je dirais plutôt que le résultat est trop gros pour la fonction utilisée (math.sqrt).
    Ainsi que je le disais au-dessus, avec un lien, il y a des méthodes pour une extraction sans se servir de sqrt.
    Certaines même; comme ici, pour des termes rationnels.
    Clodion

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    33
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Enseignement

    Informations forums :
    Inscription : Octobre 2013
    Messages : 33
    Par défaut
    merci, je vais étudier cela

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 26/04/2006, 09h07
  2. décallage sur long long int
    Par trax44 dans le forum C
    Réponses: 9
    Dernier message: 26/02/2006, 11h41
  3. Réponses: 1
    Dernier message: 22/07/2005, 13h32
  4. Error 124 : statement part too large
    Par cedchantrel dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 29/03/2005, 10h30
  5. calcul melangeant int et long int ?
    Par ThR dans le forum C
    Réponses: 2
    Dernier message: 06/01/2003, 01h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo