在 python 中,我如何将整数四舍五入到 10 的最高倍数,而不是四舍五入只是四舍五入
How do i round integers to the highest multiple of 10, not rounding down just round up, in python
我已经坚持了一段时间,我遇到过许多不同的舍入函数,但它们舍入浮点数或上下舍入,我正在寻找一种方法,即使数字是 61 也可以四舍五入它四舍五入到 70,有什么办法可以在 python
中做到这一点
您正在寻找始终向上取整的上限函数
import math
def roundupby(n, by):
return math.ceil(n / by) * by
print (roundupby(61, 10))
我认为这应该可以正常工作
ceil(61 / 10) * 10
您可以使用取模运算符,它除以给定的数字并产生余数:
def rounder(num, d):
return num - num % -d
结果:
>>> print(*('{}: {}'.format(n, rounder(n, 10)) for n in range(15)), sep='\n')
0: 0
1: 10
2: 10
3: 10
4: 10
5: 10
6: 10
7: 10
8: 10
9: 10
10: 10
11: 20
12: 20
13: 20
14: 20
只需使用模运算符。
number += (number%10) and (10 - number%10)
我已经坚持了一段时间,我遇到过许多不同的舍入函数,但它们舍入浮点数或上下舍入,我正在寻找一种方法,即使数字是 61 也可以四舍五入它四舍五入到 70,有什么办法可以在 python
中做到这一点您正在寻找始终向上取整的上限函数
import math
def roundupby(n, by):
return math.ceil(n / by) * by
print (roundupby(61, 10))
我认为这应该可以正常工作
ceil(61 / 10) * 10
您可以使用取模运算符,它除以给定的数字并产生余数:
def rounder(num, d):
return num - num % -d
结果:
>>> print(*('{}: {}'.format(n, rounder(n, 10)) for n in range(15)), sep='\n')
0: 0
1: 10
2: 10
3: 10
4: 10
5: 10
6: 10
7: 10
8: 10
9: 10
10: 10
11: 20
12: 20
13: 20
14: 20
只需使用模运算符。
number += (number%10) and (10 - number%10)