import math
maxValue = 12345678
a = maxValue/4.0 # Python 2.x requires either numerator/denominator to be a float to return one
print "This is the value of a", a
print "This is the ceiling of the division", math.ceil(a)
This is the value of a 3086419.5
This is the ceiling of the division 3086420.0
How can I amend the degree to which the value is rounded up?
Is it possible to round up to say 3090000.0?
import math
maxValue = 12345678
a = maxValue / 4.0
print("This is the value of a: {}".format(a))
n = int(round(math.ceil(a), -4))
print("This is the ceiling of the division: {}".format(n))
Output:
This is the value of a: 3086419.5
This is the ceiling of the division: 3090000
To round to nearest N:
* add N/2
* integer-divide by N
* multiply by N
def round(x,N):
return ( (x+N/2) // N) * N
import math
maxValue = 123 # maximum value
a = maxValue/4.0 # Python 2.x requires either numerator/denominator to be a float to return one
integerPart = str(a).split('.')[0] # if "a" is a decimal this selects the integer part
numberDigits = len(integerPart) # length of integerPart
def upperRound(x,N):
return ((x+N/2) // N) * N
print "Maximum value = {}".format(maxValue)
print "Maximum value/4 = {}".format(a)
print "length of integer part = {}".format(numberDigits)
print upperRound(a, 10-numberDigits)
Output:
Maximum value = 123
Maximum value/4 = 30.75
length of integer part = 2
32.0
Maybe this is more of a mathematical question than Python. How can I amend the 2nd argument in upperRound such that the value returned from it for maxValue=1234 is bigger than Maximum value/4=308.5, as is the result if applied in this situation?
Basically I want this script to be fully automated other than the maxValue being input by human, so for any maxValue/4, the output from upperRound should be bigger.
(Apr-06-2017, 06:13 PM)brocq_18 Wrote: [ -> ]Maybe this is more of a mathematical question than Python. How can I amend the 2nd argument in upperRound such that the value returned from it for maxValue=1234 is bigger than Maximum value/4=308.5, as is the result if applied in this situation?
Basically I want this script to be fully automated other than the maxValue being input by human, so for any maxValue/4, the output from upperRound should be bigger.
What you know have in the code is awkward, in the upperRound. I would just use
print math.ceil(a)