Lance Hoffmeyer wrote: > So, I have using the following to grab numbers from MS Word. I discovered > that that there is a "special" > rule being used for rounding. > > If a ??.5 is even the number is to rounded down (20.5 = 20) > if a ??.5 is odd the number is to rounded up (21.5 = 22) > > Brands = ["B1","B2"] > A1 = [] > A1 = [ re.search(r"(?m)(?s)\r%s.*?SECOND.*?(?:(\d{1,3}\.\d)\s+){2}" % i, > target_table).group(1) for i in Brands ] > A1 = [int(float(str(x))+0.5) for x in A1 ] > print A1 > > > Any solutions for this line with the above conditions?
Seems like a job for Decimal: from decimal import Decimal numbers = "20.50 21.5".split() ZERO_PLACES = Decimal("1") print [int(Decimal(num).quantize(ZERO_PLACES)) for num in numbers] produces [20, 22] -- http://mail.python.org/mailman/listinfo/python-list