python - 最短相同的十进制表示

标签 python decimal

<分区>

Possible Duplicate:
drop trailing zeros from decimal

如何获得比较相等的 Decimal 的最短表示?

例如:

  • 十进制('89.00') -> '89'
  • 十进制('123.010') -> '123.01'
  • 十进制('0.0') -> '0'

目前,我有自己的实现,它首先转换为字符串,用

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

效果很好,只有 2 LOC;但是有更好的写法吗?

最佳答案

您可以使用 normalize实现方法:

In [112]: print(decimal.Decimal("89.00").normalize())
89

另见 this answer .

关于python - 最短相同的十进制表示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13458784/

相关文章:

python - 如何在 django 中获取动态日期?

python - 定时器的暂停/恢复功能

python - Pandas DataFrame 到列表列表

c# - 如何转换十进制?到十进制

python - 不同位置的 mktime 问题

java - 如何在不使用 API 的情况下将八进制转换为不同形式的十进制?

c# - 如何显示整个十进制

使用函数时无法获取小数?

python - 截断小数点后的所有数字

Python-解析结构化文本到Excel