[英]Format python decimal as [-.0-9]*, no trailing zeros, value-preserving
我正在寻找一种方法,该方法需要一个decimal.Decimal对象x
并返回字符串s
,例如:
x == Decimal(s)
re.match("^-?(0|[1-9][0-9]*)(.[0-9]*[1-9])?$", s) is not None
s != '-0'
换句话说,该方法不会更改Decimal对象的值。 它返回一个字符串表示形式,该表示形式永远不会采用科学计数法(例如1e80
),并且永远不会带有任何尾随零。
我假设有一个标准的库函数可以让我做到这一点,但是我还没有找到任何库函数。 你知道吗
n.normalize()
截断精度超过28位的小数,但您可以使用字符串格式和手动检查负零:
'{:f}'.format(abs(n) if n.is_zero() else n)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.