我已经找到了十几个答案,但不是他们正在寻找的,我不想向上或向下舍入,我知道我可以将数字舍入如下:
>>> print('%.3f' % 15.555555)
15.556
>>> round(15.555555, 3)
15.666
Run Code Online (Sandbox Code Playgroud)
但我需要得到15.555.我应该使用正则表达式吗?
厚脸皮解决方案:
numstring = str(15.555555)
num = float(numstring[:numstring.find('.')+4])
Run Code Online (Sandbox Code Playgroud)
我的解决方案涉及int滥用 int朝向最接近的0 10**3舍入.我乘以它以影响舍入.使用后int,我将其除以10**3得到实际结果.
它更安全,因为它与e符号一起使用.
int(15.55555 * 10**3) / 10.0**3
Run Code Online (Sandbox Code Playgroud)