今天我注意到IronPython2.7以下問題:(鐵)Python的格式與模運算符和「負零」的問題
格式化像這樣一個FORMAT_STRING,我得到一個「零是負面的」。如果我使用Python2.7或Python3.4而不是IronPython,我會得到相同的結果。
>>> "%.2f" % -0.004
'-0.00'
然後我意識到,我可以通過傳遞兩個參數格式字符串像這樣擺脫是負面的零:
>>> "%s%.2f" % ('x', -0.004)
'x0.00'
「X」是一個隨機字符。所以,我在float值和minus值消失之前格式化另一個字符串。但這並不適用於Python2.7和Python3.4,但我得到:
>>> "%s%.2f" % ('x', -0.004)
'x-0.00'
有沒有人知道這裏發生了什麼?
格式化「negativ zero」的目的是什麼?
聽起來像IronPython中的錯誤。它應該儘可能遵循CPython參考實現。 –
我不知道你是否知道,但負零是一個完全有效的浮點值:'-0.0'。它不同於(但等於)正零。不知道爲什麼IronPython使得負號消失,格式字符串中有另一個值。 – Blckknght