2012-05-09 2 views
0

Je suis nouveau en python, j'essaie juste de lire une vidéo en joueur avg via python. Toutes les vidéos sont jouées avec succès, mais une vidéo a traversé cette erreur de valeur. Je ne suis pas sûr de savoir pourquoi cette erreur est survenue. si tu sais me décrire.ValueError: littéral invalide pour int() avec la base 10: '107.24'

+4

Apparemment, 107.24 n'est pas un nombre entier. – bereal

Répondre

3

Le problème spécifique se pose parce que le logiciel tente d'interpréter 107.24 comme un nombre entier, ce qui n'est pas le cas. Pourquoi cela, ou d'où ce numéro vient-il, est-il vraiment difficile à dire de la petite information donnée dans votre question. Est une chaîne flottante et int() ne peut pas convertir une chaîne float, utilisez float().

+0

Je suppose que le problème devrait être fermé car l'OP n'a pas donné d'informations appropriées. –

1

'107.24'

>>> a='107.24' 
>>> int(a) 
Traceback (most recent call last): 
    File "<pyshell#1>", line 1, in <module> 
    int(a) 
ValueError: invalid literal for int() with base 10: '107.24' 

>>> float(a) 
107.24 
+0

Ou utilisez 'round' comme int (round (107.24))' pour la chaîne littérale il devient plus laid 'int (round (float ('107.24')))' – lukecampbell

+0

@NiekdeKlein 'int (round (float ('. .. '))) 'est différent de juste' int (float (' ... ')) '- lequel vous voulez est une autre question entièrement. – mgilson

+0

@mgilson Je suis corrigé, int (float()) arrondit toujours vers le bas, tandis que int (round (float())) arrondit à int int. –

Questions connexes