如果全都不为零,如何仅显示尾随小数?

时间:2019-07-17 14:53:57

标签: python string decimal

我想将小数的值转换为字符串,但是仅显示尾随的小数(如果它们不全为零)。例如 "x x#"

典型的做法是什么?

现在我正在做

nice_decimal_show(Decimal("3.00")) == "3" nice_decimal_show(Decimal("3.14")) == "3.14"

2 个答案:

答案 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('.')

我不知道这是否是规范的方式...