繁体   English   中英

将python十进制格式设置为[-.0-9] *,不包含尾随零,保留值

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM