将小数位移到某些数字而不进行舍入

时间:2013-06-23 19:58:12

标签: python

我已经找到了十几个答案,但是我没有找到它们,我不想要向上或向下舍入,我知道我可以将数字舍入如下:

>>> print('%.3f' % 15.555555)
15.556

>>> round(15.555555, 3)
15.666

但我需要得到15.555。我应该使用正则表达式吗?

2 个答案:

答案 0 :(得分:8)

厚颜无耻的解决方案:

numstring = str(15.555555)
num = float(numstring[:numstring.find('.')+4])

答案 1 :(得分:6)

我的解决方案涉及int滥用行为。 int向最接近的0舍入。我将其乘以10**3以影响舍入。使用int后,我将其除以10**3以获得实际结果。

它更安全,因为它与e符号一起使用。

int(15.55555 * 10**3) / 10.0**3