If I asked "When rounding to the tens place, how many different whole numbers will round to 50?" would the answer be "9" or "10". As in: does "50" "round to itself" (in which case, 10) or does it not count because it doesn't "go anywhere" (in which case, 9)?
I can formulate a common-sense rationale for either of these answers. Is there a more "mathematical" answer here?
Being a programmer, I think of this in terms of "How would I implement the desired 'round-to-tens()' function? What would it return given 50 as its argument?" The only sensible answer seems to me to be 'round-to-tens(50) == 50'; otherwise one has to throw an exception, return some bogus value, set a global error code, or some such utterly gratuitous complication.
For a purely mathematical justification: The computation in question is really "Find the nearest exact multiple of 10 to 50" Obviously the answer is 50, since it is itself a multiple of 10.
Incidentally, notice that the answer to the original question (given this handling of 50) is ten, regardless of whether we mean 'round down', 'round up', or 'round off'. Justification: Two numbers whose difference is ten or more logically shouldn't round to the same value, so no more than ten consecutive values can round to the same number.