【发布时间】:2011-01-27 07:05:37
【问题描述】:
如何格式化浮点数以使其不包含尾随零?换句话说,我希望生成的字符串尽可能短。
例如:
3 -> "3"
3. -> "3"
3.0 -> "3"
3.1 -> "3.1"
3.14 -> "3.14"
3.140 -> "3.14"
【问题讨论】:
-
这个例子根本没有任何意义。
3.14 == 3.140-- 它们是 same 浮点数。就此而言,3.140000 是相同的浮点数。零一开始就不存在。 -
@S.Lott - 我认为问题在于打印没有尾随零的浮点数,而不是两个数字的实际等价。
-
@pokstad:在这种情况下,没有“多余的”零。
%0.2f和%0.3f是生成左侧最后一个数字所需的两种格式。使用%0.2f生成右侧的最后两个数字。 -
3.0 -> "3"仍然是一个有效的用例。print( '{:,g}'.format( X )为我工作以输出3其中X = 6 / 2和当X = 5 / 2我得到2.5的输出时,如预期的那样。 -
老问题,但是..
print("%s"%3.140)给你你想要的。 (我在下面添加了一个答案......)
标签: python formatting floating-point pretty-print