0"? - Retrouvez les réponses et les commentaires concernant cette question" />
Python a-t-il défini la valeur de "nan> 0"? Dans mon interpréteur python, je reçois: mais est-ce garanti? P> Si je comprends correctement, la norme IEEER 754 attribue FALSE à toute comparaison impliquant NAN . Cependant, je ne trouve rien dans la documentation Python qui indique que cette norme est suivie. Je comprends même que donc, est le résultat de 1/0 code> devrait donner à l'infini, sous IEEEA 754, mais Python augmente une exception (
ZeroDivisionError code>), donc python ne suive pas complètement IEEEA 754. P >
float ('nan')> 0 code> entièrement défini dans Python? J'ai besoin de savoir si c'est la même chose sur toutes les plateformes, et avec toutes les versions de Python (y compris les anciennes). P> P>
3 Réponses :
Je pense que c'est une hypothèse assez sûre. Le Bien sûr, si vous êtes vraiment paranoïaque à ce sujet, vous pouvez écrire un peuest, puis si vous trouvez un système où cela ne tient pas, au moins, vous saurez immédiatement. P> maths code> bibliothèque
documentation implique em> que le nan em> doit jouer em> comme spécifié dans IEEE 754. P>
La bibliothèque de mathématiques n'implique pas beaucoup plus que l'existence même de float ('nan') code> en python ... La question est vraiment sur combien i> le soutien est pour Nan, y compris dans la définition (ou non) du résultat de
nan> 0 code>. Je pense que NPE a cloué: il est officiel que le soutien total n'est pas garanti.
@Eol - Ce n'est pas comme ça que je le lis. "Pour plus d'informations sur Nan, consultez IEEE 754". Pour moi, cela dit, Nan agit comme celui-ci à l'IEEE 754.
Assez juste. Cependant, je comprends que Nan est un concept IEEE 754 i>, donc IEEE 754 est implicitement mentionné par float ('nan') code>, non?
Toutes les implémentations Python que j'ai utilisées sur différentes plateformes utilisent IEEE-754 et se comporteraient comme vous le décrivez. P>
Cependant, cela ne semble pas être officiellement mandaté par la langue. Voilà de sorte que le Tutoriel a ce qui suit à dire (emphasis mine): < / p>
presque em> toutes les machines Aujourd'hui (juillet 2010) Utilisez l'arithmétique Point flottant IEEE-754, et presque em> toutes les plateformes Python flotte à IEEE-754 "Double précision". < / p> blockQuote>
Voici un thread pertinent de 2008: Python sur les plates-formes non IEEE-754: plaidoyer pour information . P>
Il est très facile de vérifier si votre interpréteur / plate-forme se comporte de la manière dont vous vous attendez. Si vous en rapportez de manière critique de cela, vous pouvez facilement détecter la non-conformité lorsque votre programme démarre. P>
Ce lien suggère que le concept NAN a été incorporé à Python de version 2.3. Donc, il devrait être identique sur toutes les plateformes dans les versions actuellement utilisées.
Il a également une implémentation dans maths bibliothèque. p>
par exemple math.isnan () code> p>
La vraie question concerne la manière dont l'ICEE 754 Python est ... La réponse de NPE est assez précise: IEEE 754 n'est pas mandaté par la langue.
Je pense que les NANs à Python sont sous-documentées. C'est une sorte d'implicite qu'ils sont IEEE 754, mais ne semble pas être explicitement mandatée.