Would you round 0.5 to 1 rather than 0? With no other information than “0.5 needs to be rounded to an integer” I would say you should round to 1. Here’s the tale of why:
Since half is dead center with no other information to suggest it is closer to 0 or 1, we don’t have a common rounding rule to follow. Logically, since you know the value is over 0, if you really need to make it an integer then you are wise to make it 1 as it’s more likely to be 1 than 0. But perhaps that’s too opinionated, or maybe you desire a mathematical protocol to justify that move. When in this rounding predicament the next technique available to you is truncation.
In dealing with real numbers and real quantities, 0.5 could, for instance, also be considered 0.50000001 or 0.49999999. In this case, if we wanted 0.5 to be an integer it could be rounded to 1 or 0, respectively, according to standard rounding rules. This, as we all likely know, is the common methodology due to the logic that anything over 0.5 would be nearer to 1 and anything under 0.5 would be nearer to 0. However, if we either do not know any decimal values beyond 0.5 or we accept it to be precise, then rounding in this traditional sense leaves us stuck. We must employ the next logical procedure for rounding, which is truncation.
Truncation is a process where a number is rounded down to the nearest place value regardless of the values after that place. In other words, if a value does not make it to the next significant digit it is dropped off. For example, 0.5 truncated to one significant figure and/or to an integer would yield 0 because it never made it to one and now there is no fractional space designated. This would be just the same for 0.01, 0.6, or 0.999; they all truncate to 0. Likewise, 1.001, 1.7, or 1.9999 would truncate to 1. As you can see, based on the truncation parameters, this rounding method essentially chops off whatever doesn’t make it, regardless of how close it may be. Most commonly, truncation is practiced in computer programming as chopping off anything to the right of the decimal place, or you could say forcing any number to be an integer (a whole number). In the broad sense, truncation means to shorten or chop an end off. More literally, imagine truncating a tree by chopping the roots and branches off to leave just the trunk, but saying that any amount of branch or roots removed makes it as if it was just a rootless, branchless (whole) trunk.
Now, I should mention there is also anti-truncation, which moves the value the opposite direction on the number line than truncation, away from zero rather than toward it. In this sense, anti-truncating 0.5 yields 1 using the same logic just in the reverse direction. That is, it is forcing a number to be an integer by removing anything to the right of the decimal but accounting for it’s existence by adding 1 to the left of the decimal; if it’s there it has one integer value. For example, anti-truncating 0.01, 0.6, or 0.999 would yield 1 just as anti-truncating 1.001, 1.7, or 1.9999 would yield 2. Here, the for literal sense, imagine anti-truncating a tree by saying any amount of twigs or branches, or root or root hairs attached to the trunk makes it worth the same as a fully intact (whole) tree.
To clarify, truncation and anti-truncation both chop off digits (i.e. a decimal place or significant figure) but the former disregards it completely and the latter regards it by adding one to the next place up. Either form of truncation is mathematically and physically valid and equivalent, just as acceleration and deceleration are (deceleration is the colloquial term for negative acceleration; acceleration is the colloquial term for positive acceleration). So, there is valid logic to employ either directionality when truncating as there both logically similar ways to round any number to a near integer.
Alright, back to our very specific 0.5 situation. In this case, when in doubt of how to round it out to the nearest integer, go to truncation. To figure out what direction to truncate you just need to figure out what the 0.5 really means as an integer. To round 0.5 to 0 means that you are saying your quantity does not exist; rounding it to 1 is saying something does exist. Basically, rounding 0.5 to an integer is an all or nothing move. You need to decided if it’s logical to truncate or anti-truncate. If you are halfway to something then does it make sense to say it’s null and void or to say it’s a whole thing? Does partial count or is partial countless; is it worthy or worthless? Ultimately, I’ll have to leave it up to your context-driven judgment call, but for most cases I’d say 0.5 is worth 1 more often than it’s worth 0, but I’m a glass half-full type of guy.