Trevor, rounding issues on "0.5" would only be a problem inside a Javascript. What you describe is what happens when a value seems to be reported as "0.5" but is actually "0.49" (for any number of decimals bigger than what was reported). Rounding this 'correctly' does not round the truncated value "0.5" but the original value instead.
For the Camilo's use, grabbing an exact number of decimals and processing these, it's not an issue, and he can simply use Math.round.