在 Python 中四舍五入到下一个十位

Round to the next tens in Python

有没有办法总是四舍五入到下一个十位?例如,0.000000000003 应变为 0.10.1244593249234 将变为 0.2,而 0.9x 将变为 1。负数在这里不是问题。

是否有内置的或者我需要想出一些东西?

给你。这不是内置的,可能太过分了,但至少应该可以工作,工作已完成:

number = input()

number = number.split('.')
first = int(number[-1][0])

if first == 9:
    number = str(int(number[0]) + 1)
else:
    for digit in number[-1][1:]:
        if digit != '0':
            first += 1
            break

    number = number[0] + '.' + str(first)

print(number)

通过将输入 f 乘以 10,您会将其从 [0, 1] 映射到 [0, 10]。现在通过从这个数字中获取 ceil,您将得到 [0, 10] 中的一个整数,将其除以 10,您将根据需要获得 [0, 1] 范围内的下一个十:

import math

next_ten = math.ceil(f * 10.0) / 10.0

Idk,这是一个简单的解决方案。我针对您提供的所有选项对其进行了测试,似乎工作正常。

x = 0.2
print("{:.1f}".format(x+.1))