How to round an integer up to the nearest multiple of 'multiple' in Python

1 Answer

0 votes
#     roundUp(n, multiple)
#     --------------------
#     Rounds the integer n *up* to the nearest multiple of `multiple`.
#
#     Mathematically:
#         result = ceil(n / multiple) * multiple
#
#     We use integer arithmetic for efficiency:
#         (n + multiple - 1) / multiple  → smallest integer ≥ n/m

def roundUp(n, multiple):
    if multiple <= 0:
        # Defensive programming: avoid undefined behavior.
        # In real-world code, you'd throw or handle this differently.
        return n

    # Efficient integer rounding up:
    return ((n + multiple - 1) // multiple) * multiple


# main()
print("roundUp(53, 20)  = ", roundUp(53, 20))
print("roundUp(68, 30)  = ", roundUp(68, 30))
print("roundUp(7, 100)  = ", roundUp(7, 100))
print("roundUp(119, 100) = ", roundUp(119, 100))
print("roundUp(781, 100) = ", roundUp(781, 100))
print("roundUp(1026, 100) = ", roundUp(1026, 100))
print("roundUp(11689, 1000) = ", roundUp(11689, 1000))



'''
run:

roundUp(53, 20)  =  60
roundUp(68, 30)  =  90
roundUp(7, 100)  =  100
roundUp(119, 100) =  200
roundUp(781, 100) =  800
roundUp(1026, 100) =  1100
roundUp(11689, 1000) =  12000

'''

 



answered Jul 22 by avibootz
edited Jul 22 by avibootz

Related questions

...