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

ene*_*epo 1 python

我已经找到了十几个答案,但不是他们正在寻找的,我不想向上或向下舍入,我知道我可以将数字舍入如下:

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

>>> round(15.555555, 3)
15.666
Run Code Online (Sandbox Code Playgroud)

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

Imr*_*err 8

厚脸皮解决方案:

numstring = str(15.555555)
num = float(numstring[:numstring.find('.')+4])
Run Code Online (Sandbox Code Playgroud)


Kon*_*ski 6

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

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

int(15.55555 * 10**3) / 10.0**3
Run Code Online (Sandbox Code Playgroud)