Home > Back-end >  Rounding up to two limits in Python
Rounding up to two limits in Python

Time:07-16

I am trying to round up to nearest 10 for Max and Min. However, for Max, the nearest 10 should be greater than Max and for Min, the nearest 10 should be less than Min. The current and the expected outputs are presented.

import numpy as np
Max = [99.91540553]
Min = [8.87895014]
Amax=round(Max[0],-1)
Amin=round(Min[0],-1)

The current output is

Amax=100
Amin=10.0

The expected output is

Amax=100
Amin=0.0

CodePudding user response:

If I understand your question correctly, you'd need the floor and ceil functions from the math module.

import math as m
Max = [99.91540553]
Min = [8.87895014]
Amax = 10*m.ceil(Max[0]/10)
Amin = 10*m.floor(Min[0]/10)

These also exist in numpy if you would like to perform this on every element in a numpy array:

import numpy as np
Max = np.array([99.91540553, 95.7, 93.2])
Min = np.array([8.87895014, 15.7, 17.2])
Amax = 10*np.ceil(Max/10)
Amin = 10*np.floor(Min/10)

CodePudding user response:

You can use math.floor and math.ceil, these functions round only to units so we just divide by ten and then multiply by ten to round to tens.

import math
Max = [99.91540553]
Min = [8.87895014]
Amax= 10*math.ceil(Max[0]/10)
Amin= 10*math.floor(Min[0]/10)
print(Amax, Amin)

Output

100 0
  • Related