我正在寻找一种采用 decimal.Decimal 对象 x 并返回字符串 s 的方法,这样:
x == Decimal(s)re.match("^-?(0|[1-9][0-9]*)(.[0-9]*[1-9])?$", s) 是不是无s != '-0'
换句话说,该方法不会改变 Decimal 对象的值;它返回一个字符串表示形式,该表示形式从不采用科学计数法(例如 1e80),并且从不包含任何尾随零。
我假设有一个标准库函数可以让我这样做,但我还没有找到。你知道吗?
请您参考如下方法:
n.normalize() 截断精度超过 28 位的小数,但您可以使用字符串格式和手动检查负零:
'{:f}'.format(abs(n) if n.is_zero() else n)
