【发布时间】:2012-06-28 23:14:30
【问题描述】:
我有一长串小数,我必须根据特定条件按 10、100、1000、..... 1000000 的因子进行调整。当我将它们相乘时,有时我想去掉一个无用的尾随零(尽管并非总是如此)。比如……
from decimal import Decimal
# outputs 25.0, PROBLEM! I would like it to output 25
print Decimal('2.5') * 10
# outputs 2567.8000, PROBLEM! I would like it to output 2567.8
print Decimal('2.5678') * 1000
是否有一个函数可以告诉十进制对象删除这些无关紧要的零?我能想到的唯一方法是转换为字符串并使用正则表达式替换它们。
可能应该提到我使用的是 python 2.6.5
编辑 senderle 的好回答让我意识到我偶尔会得到一个像 250.0 这样的数字,标准化后会产生 2.5E+2。我想在这些情况下,我可以尝试将它们整理出来并转换为 int
【问题讨论】:
-
那些尾随零被保留,因为它们代表产生值的表达式的最大精度(这被认为对 Decimal 类型很重要)。