【发布时间】:2013-06-23 19:58:11
【问题描述】:
我找到了十几个答案,但没有一个是我要找的,我不想向上或向下四舍五入,我知道我可以将数字四舍五入如下:
>>> print('%.3f' % 15.555555)
15.556
>>> round(15.555555, 3)
15.666
但我需要得到 15.555。我应该使用正则表达式吗?
【问题讨论】:
-
是的,非常感谢我应该删除我的帖子吗?
标签: python
我找到了十几个答案,但没有一个是我要找的,我不想向上或向下四舍五入,我知道我可以将数字四舍五入如下:
>>> print('%.3f' % 15.555555)
15.556
>>> round(15.555555, 3)
15.666
但我需要得到 15.555。我应该使用正则表达式吗?
【问题讨论】:
标签: python
厚颜无耻的解决方案:
numstring = str(15.555555)
num = float(numstring[:numstring.find('.')+4])
【讨论】:
我的解决方案涉及int 滥用。 int 向最接近的 0 舍入。我将其乘以 10**3 以影响舍入。使用int后,除以10**3得到实际结果。
它更安全,因为它可以使用e 表示法。
int(15.55555 * 10**3) / 10.0**3
【讨论】:
int(15.55555 * 10**3) / 10.0**3
int,我不确定。