1

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

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

>>> round(15.555555, 3)
15.666

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

4

2 回答 2

9

厚颜无耻的解决方案:

numstring = str(15.555555)
num = float(numstring[:numstring.find('.')+4])
于 2013-06-23T20:03:09.713 回答
6

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

它更安全,因为它确实适用于e符号。

int(15.55555 * 10**3) / 10.0**3
于 2013-06-23T20:04:44.917 回答