最短相同十进制表示法

3

可能是重复问题:
从小数中删除尾随零

如何获取与之相等的Decimal的最短表示形式?

例如:

  • Decimal('89.00') -> '89'
  • Decimal('123.010') -> '123.01'
  • Decimal('0.0') -> '0'

目前,我有自己的实现方式,首先将其转换为字符串,使用:

if chanstr.endswith('0'):
    chanstr = chanstr[:chanstr.rfind('.')]

这个代码很好用,只有两行。但是有没有更好的写法呢?


因为在写这个问题之前我才发现了另一个问题,所以将其关闭为重复。但是对于未来的人来说,这个问题仍然是一条有用的路径。 - gerrit
1个回答

5
您可以使用normalize方法来实现此操作:
In [112]: print(decimal.Decimal("89.00").normalize())
89

另请参阅此答案


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接