Pourquoi le code n'est pas capable de terminer correctement dans certains cas de test qui ne sont pas parfaitement divisibles par exemple: p> entrée (stdin) p > 7 p> votre sortie (stdout) p> 7,00 p> sortie attendue p> 7,00 p> Ceci L'étui à essai est correct car les chiffres après la décimale sont de 0 mais des cas de test comme ci-dessous:
Entrée (stdin) p> 2 5 p> votre sortie (stdout) p> 3.00 p> sortie attendue p> 3.50
un autre exemple
Entrée (stdin) p> -95 -45 -56 48 36 79 -83 -16 -95 -57 1 -95 -61 30 9 -56 18 62 -99 61 40 -32 -69 92 -33 -82 -81 70 21 62 46 7 95 -24 10 66 24 73 16 41 -91 -55 -42 -84 -54 -80 -45 27 -27 -26 -58 -47 88 30 22 -66 46 -68 - 24 98 28 11 37 69 P> Votre sortie (stdout) p> -6,00 p> sortie attendue p> -5,98 p> < p> Ici, il n'est pas arrondi correctement s'il vous plaît aidez-moi avec le débogage de mon code p> p>
3 Réponses :
average = float(count) / float(len1)
parce que vous utilisez donc ici: p> brut_input code>, je suppose que c'est Python 2, où diviser un entier par un autre entier résulte d'un entier.
average=count / float(len1)
Vos variables sont de type Alors, lorsque vous faites la division, vous manquez la précision réelle. Puis, lorsque vous faites le Ajouter un int code>. p>
13/2 = 6.5 code> mais parce que tous les types sont
int code> le résultat sera
6 code>, vous manquez d'absorber le
0.5 Code> p>
rond code> pour convertir simplement le résultat qui est en fait un
int code> dans un
flaot code> et vous finissez toujours par
x.00 code> p>
flotteur (variable) code> Pour résoudre votre problème P>