Aujourd'hui j'ai remarqué question suivante sur IronPython2.7:(fer) Python problème de mise en forme avec l'opérateur modulo et « zéro négatif »
Lors du formatage d'un chaîne_format comme si, je reçois un « zéro negativ ». J'obtiens le même résultat si j'utilise Python2.7 ou Python3.4 au lieu d'IronPython.
>>> "%.2f" % -0.004
'-0.00'
Puis je réalise que je peux me débarrasser de la negativ zéro en passant deux arguments à la chaîne de format comme ceci:
>>> "%s%.2f" % ('x', -0.004)
'x0.00'
« x » est un caractère aléatoire. Donc, je formater une autre chaîne avant la valeur float et le moins disparaît. Cela ne fonctionne pas avec python2.7 et Python3.4 bien, où je reçois:
>>> "%s%.2f" % ('x', -0.004)
'x-0.00'
Quelqu'un sait-il ce qui se passe ici?
Quel est l'objectif du "zéro négatif" formaté?
Cela ressemble à un bug dans IronPython. Il est supposé suivre l'implémentation de référence de CPython dans la mesure du possible. –
Je ne sais pas si vous êtes au courant, mais le zéro négatif est une valeur flottante parfaitement valide: '-0.0'. Il est distinct de (mais égal à) zéro positif. Aucune idée pourquoi IronPython fait disparaître le signe moins avec une autre valeur dans la chaîne de format. – Blckknght