我已经找到了十几个答案,但是我没有找到它们,我不想要向上或向下舍入,我知道我可以将数字舍入如下:
>>> print('%.3f' % 15.555555)
15.556
>>> round(15.555555, 3)
15.666
但我需要得到15.555。我应该使用正则表达式吗?
答案 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