ItsIIIyTh1K Asked:2022-04-06 00:03:56 +0000 UTC2022-04-06 00:03:56 +0000 UTC 2022-04-06 00:03:56 +0000 UTC 如何在 Python 中保留小数部分的同时舍入一个数字 772 问题是如何在保留小数部分的同时向下舍入数字。例如 2.71953 向上取整为 2.71。round 函数向上取整,而 math.floor 不允许您指定小数位数。我将不胜感激 python 2 个回答 Voted Best Answer GrAnd 2022-04-06T00:12:07Z2022-04-06T00:12:07Z import math a = 2.71953 b = math.floor(a * 100)/100.0 或者 b = round(a - 0.5/10**2, 2) 或者 b = a // 0.01 / 100 或者 b = a // 0.01 * 0.01 不同选项的速度: >>> import timeit as t >>> N = 10000000 >>> t.timeit("math.floor(a * 100)/100.0", "import math; a = 2.71953", number=N) / N 2.2843667271081358e-07 >>> t.timeit("round(a - 0.5/10**2, 2)", "a = 2.71953", number=N) / N 4.7399221931118516e-07 >>> t.timeit("a // 0.01 / 100", "a = 2.71953", number=N) / N 1.7466544329654425e-07 >>> t.timeit("a // 0.01 * 0.01", "a = 2.71953", number=N) / N 1.3633709449786692e-07 Kuchizu 2022-04-06T00:16:47Z2022-04-06T00:16:47Z s = input() print(float(s[:s.find('.')+3] if '.' in s else s)) >>> 71.2245 >>> 71.22
或者
或者
或者
不同选项的速度: