Rounding Negative Numbers
Date: 05/23/2007 at 17:32:59 From: Paul Subject: Rounding negative numbers I was wondering what -0.5 is rounded to the nearest integer? My first impression was -1, but when we round 0.5 we round up, which would suggest -0.5 should be rounded to 0. Can you even round negatives? I asked a few mathematics graduates and did not get a convincing response, with both 0 and -1 being given. I thought that possibly you round the magnitude of the number and then deal with the negative, giving -1. However, we round 2.5, 1.5, 0.5 upwards, so to follow the pattern we would have to round -0.5 to 0.
Date: 05/24/2007 at 10:36:00 From: Doctor Vogler Subject: Re: Rounding negative numbers Hi Paul, Thanks for writing to Dr. Math. The answer to your question is that there are many different ways of rounding. Some include (1) floor: round down to the next integer x-1 < floor(x) <= x (2) ceiling: round up to the next integer x <= ceiling(x) < x+1 (3) truncate: round toward zero trunc(x) = floor(x) when x >= 0 trunc(x) = ceiling(x) when x <= 0 (4) antitruncate: round away from zero (this is more rare) trunc(x) = ceiling(x) when x >= 0 trunc(x) = floor(x) when x <= 0 Then there are also the more familiar methods of rounding to the "nearest integer." But the trouble is that when you have half of an odd number, then there are two integers that are equally "near," so the above definition is ambiguous. I think that the most common method for resolving this confusion is to round halves up to the next integer: (5) round(x) = floor(x + 1/2) But you could also argue that this rule was placed so that you only have to look one decimal digit past the decimal point, and so you want 1.5 to round to the same number as 1.59. By this logic, you would also want -1.5 to round just like -1.59, in which case you might switch conventions when you have a negative number: (6) round(x) = floor(x + 1/2) when x >= 0 round(x) = ceiling(x - 1/2) when x <= 0 Of course, there is no reason why you can't do the opposite of either of those methods: (7) round(x) = ceiling(x - 1/2) (8) round(x) = ceiling(x - 1/2) when x <= 0 round(x) = floor(x + 1/2) when x >= 0 And in more special cases, you might prefer to do something else, like round down if the fraction is less than 1/3 and round up if the fraction is at least 1/3, as in (9) round(x) = floor(x + 2/3) The bottom line is that "round" is not as well-defined a term (mathematically) as the floor (sometimes called "greatest integer") and ceiling functions are, and you can choose to use whichever definition works best for you. But my personal opinion, when no more precise definition is given, would be to use definition (5), despite my argument for definition (6). If you have any questions about this or need more help, please write back, and I will try to offer further suggestions. - Doctor Vogler, The Math Forum http://mathforum.org/dr.math/
Date: 05/24/2007 at 15:06:55 From: Paul Subject: Thank you (Rounding negative numbers) Thanks for the help.
Search the Dr. Math Library:
Ask Dr. MathTM
© 1994-2013 The Math Forum