¿Cuál es la diferencia algorítmica entre math.ceil () y round () cuando los puntos decimales finales son> = 0.5 en Python 3?

¿Cuál es la diferencia algorítmica entre math.ceil () y round () cuando los puntos decimales finales son> = 0.5 en Python 3?

Por ejemplo,

round(9.5) = 10 round(9.67) = 10 math.ceil(9.5) = 10 math.ceil(9.5) = 10 

De los documentos ,

[…] si dos múltiplos están igualmente cerca, el redondeo se realiza hacia la opción par (por ejemplo, tanto la ronda (0.5) como la ronda (-0.5) son 0 y la ronda (1.5) es 2).

Sin embargo, math.ceil siempre se “redondeará”. Es decir, el entero más pequeño mayor o igual que la entrada.

Además, round y math.ceil difieren mucho cuando se ejecutan en números negativos.

 >>> math.ceil(-2.8) -2 >>> round(-2.8) -3