Esto ya es pura cabezonería por mi parte jam
![apachar ojo](http://static.forosdelweb.com/fdwtheme/images/smilies/wink.png)
.
Tendríamos que contar a priori con 4 ifs (en realidad 3 y un else) porque si bien tu class nos redondea correctamente en función a si es inferior o superior a medio punto, ese medio punto también nos debería entrar dentro de la ecuación.
De ese modo, 1.26 debería devolver 1.5, y no 1 como en tu función, o 1.74 también debería ser 1.5. No digo que esté mal realizada... es que sin duda me expliqué erróneamente.
Con la opción de Seppo forzamos a que el resultado siempre sea un número integro o un decimal de 0.5, unas veces por exceso y otras por defecto (debido al redondeo inicial) No me preguntes porqué, pero me parece pura magia :)... Y es que lo mio nunca fueron las matemáticas