Cita: Pero tampoco quiero utilizar un BigDecimal porque quedaría mal el programa y mas con lo "pijos" que son en mi universidad para corregir.
¿Quedar mal? Si que el resultado sea correcto sin perder precisión es quedar mal, mal vamos
. Y no es que le pase a Java, le pasa a cualquier lenguaje que use una implementación de puntos flotantes con precisión finita por defecto, como por ejemplo le ocurre a C si no usas las librerias matemáticas especiales.
No queda muy claro exactamente como lo quieres redondear, pero para que lo haga un programa tendrás que expresarlo en lenguaje "formal y determinista".
De todas formas para un resultado preciso, hay que usar una precisión indefinida. Lo demás son aproximaciones.
S!