我想将小数的值转换为字符串,但是仅显示尾随的小数(如果它们不全为零)。例如
"x x#"
典型的做法是什么?
现在我正在做
nice_decimal_show(Decimal("3.00")) == "3" nice_decimal_show(Decimal("3.14")) == "3.14"
答案 0 :(得分:3)
最好的方法是使用g
格式,而不是f
格式。这将抑制尾随零。例如:
>>> print("%g" % 3.0)
3
>>>
>>> print("%g" % 3.0012)
3.0012
>>>
您还可以在g
字符串中使用format
:
>>> print("{:g}".format(3.0))
3
>>>
>>> print("{:g}".format(3.0012))
3.0012
>>>
如果要限制精度,可以使用:
>>> print("%.4g" % 3.0012)
3.001
>>>
或
>>> print("{:.4g}".format(3.0012))
3.001
>>>
答案 1 :(得分:0)
我喜欢这种方式:
('%f' % Decimal("3.000")).rstrip('0').rstrip('.')
我不知道这是否是规范的方式...