如何在 python 中找到最接近的等于或大于 10 的倍数
how to find nearest equal or higher multiple of ten in python
我有一个 small task ,我将数字四舍五入为十的更高倍数。但是想将它四舍五入到最接近的十的倍数。
我的代码:
import math
a = map(int,list(str(7990442)))
b = map(int,list(str(1313131)))
print "a :",a
print "b :",b
l= []
for p,q in zip(a,b):
l.append(p*q)
print "prod list :",l
ls = sum(l)
print "sum :",ls
def roundup(x):
return int(math.ceil(x / 10.0)) * 10
top = roundup(ls)
print "round value: ",top
val = top-ls
print "val :",val
a.append(val)
print "output :",a
输出:
a : [7, 9, 9, 0, 4, 4, 2]
b : [1, 3, 1, 3, 1, 3, 1]
prod list : [7, 27, 9, 0, 4, 12, 2]
sum : 61
round value: 70
val : 9
output : [7, 9, 9, 0, 4, 4, 2, 9]
预期输出:
sum : 61
round value: 60
val : 1
output : [7, 9, 9, 0, 4, 4, 2, 1]
您可以使用 round(x / 10.0) * 10
而不是 math.ceil
。
更容易
def custom_round(x):
return int(round(x, -1))
这立即四舍五入为十的倍数。
对于一般用途,给定一个 base
舍入为:
def my_special_round(x, base=10):
return int(base * round(float(x)/base))
为了找到十的最小倍数,我会这样做。这样我就不需要使用数学库了:
while True:
n=int(input("number"))
n=n/10
n=int(n) # it removes decimal
n=n*10 #then by make it times 10 to return to proportion
print(n)
在这段代码中,我使用了 int
转换来删除单元。
如果你想找到最近的(包括最上面的)你可以使用一个 if
单位大于 5,然后加一个:
while True:
n=int(input("number"))
if (n%10>5):
n=n+10
n=n/10
n=int(n)
n=n*10
print(n)
我有一个 small task ,我将数字四舍五入为十的更高倍数。但是想将它四舍五入到最接近的十的倍数。
我的代码:
import math
a = map(int,list(str(7990442)))
b = map(int,list(str(1313131)))
print "a :",a
print "b :",b
l= []
for p,q in zip(a,b):
l.append(p*q)
print "prod list :",l
ls = sum(l)
print "sum :",ls
def roundup(x):
return int(math.ceil(x / 10.0)) * 10
top = roundup(ls)
print "round value: ",top
val = top-ls
print "val :",val
a.append(val)
print "output :",a
输出:
a : [7, 9, 9, 0, 4, 4, 2]
b : [1, 3, 1, 3, 1, 3, 1]
prod list : [7, 27, 9, 0, 4, 12, 2]
sum : 61
round value: 70
val : 9
output : [7, 9, 9, 0, 4, 4, 2, 9]
预期输出:
sum : 61
round value: 60
val : 1
output : [7, 9, 9, 0, 4, 4, 2, 1]
您可以使用 round(x / 10.0) * 10
而不是 math.ceil
。
更容易
def custom_round(x):
return int(round(x, -1))
这立即四舍五入为十的倍数。
对于一般用途,给定一个 base
舍入为:
def my_special_round(x, base=10):
return int(base * round(float(x)/base))
为了找到十的最小倍数,我会这样做。这样我就不需要使用数学库了:
while True:
n=int(input("number"))
n=n/10
n=int(n) # it removes decimal
n=n*10 #then by make it times 10 to return to proportion
print(n)
在这段代码中,我使用了 int
转换来删除单元。
如果你想找到最近的(包括最上面的)你可以使用一个 if
单位大于 5,然后加一个:
while True:
n=int(input("number"))
if (n%10>5):
n=n+10
n=n/10
n=int(n)
n=n*10
print(n)