RShowDoc('FAQ')
then search for 7.31
This statement
"If you stop at a 5 or 7 or 8 and back up to the previous digit, you round
up. Else you leave the previous result alone."
is not quite right. The recommendation in IEEE 754, and this is how R does
arithmetic, is to Round Even.
I ilustrate here with decimal, even though R and other programs use binary.
> x <- c(1.4, 1.5, 1.6, 2.4, 2.5, 2.6, 3.4, 3.5, 3.6, 4.4, 4.5, 4.6)
> r <- round(x)
> cbind(x, r)
x r
[1,] 1.4 1
[2,] 1.5 2
[3,] 1.6 2
[4,] 2.4 2
[5,] 2.5 2
[6,] 2.6 3
[7,] 3.4 3
[8,] 3.5 4
[9,] 3.6 4
[10,] 4.4 4
[11,] 4.5 4
[12,] 4.6 5>
Numbers whose last digit is not 5 (when in decimal) round to the nearest
integer.
Numbers who last digit is 5 (1.5, 2.5, 3.5, 4.5 above)
round to the nearest EVEN integer.
Hence 1.5 and 3.5 round up to the even numbers 2 and 4.
2.5 and 4.5 round down do the even numbers 2 and 4.
This way the round ups and downs average out to 0. If we always went up from .5
we would have
an updrift over time.
For even more detail click on the link in FAQ 7.31 to my appendix
https:// link.springer.com/content/pdf/bbm%3A978-1-4939-2122-5%2F1.pdf
and search for "Appendix G".
Section G.5 explains Round to Even.
Sections G.6 onward illustrate specific examples, such as the one that started
this email thread.
Rich