Muy probablemente porque los Double son umeros de punto flotante, y por definición este tipo de valores son de
aproximación, en cambio los Decimal son de longitud fija.
Este tipo de problemas son más sencillos de ver en las bases de datos, pero el tema del
punto flotante se está manifestando a causa del uso de la función ROUND().