在 Python 中四舍五入到下一个十位
Round to the next tens in Python
有没有办法总是四舍五入到下一个十位?例如,0.000000000003
应变为 0.1
。 0.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))
有没有办法总是四舍五入到下一个十位?例如,0.000000000003
应变为 0.1
。 0.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))