今天我注意到IronPython2.7上的以下问题:
当格式化format_string时,我得到一个“negativ zero”。如果我使用Python2.7或Python3.4而不是IronPython,我会得到相同的结果。
>>> "%.2f" % -0.004
'-0.00'
然后我意识到,我可以通过将两个参数传递给格式字符串来消除零点:
>>> "%s%.2f" % ('x', -0.004)
'x0.00'
'x'是一个随机字符。所以,我在浮点值之前格式化另一个字符串,减号消失。但这不适用于Python2.7和Python3.4,我得到:
>>> "%s%.2f" % ('x', -0.004)
'x-0.00'
有人知道这里发生了什么吗?
格式化的“negativ zero”的目的是什么?
答案 0 :(得分:0)
(编辑以考虑@MarkDikinson评论)
您可以先格式化数字,然后执行printf
- 格式化:
"%.2f" % (round(-0.004, 2)+0)
+0
可以删除负零号。
round
也可以使用ndigits
参数来指定方式
数字本身的舍入所需的许多数字(不是关于显示,由"%.2f"
处理)。