Hola,
sé que ésta no es tu consulta, pero espero que te sirva de algo. No hace falta que uses variables de tipo
double para las calificaciones. Con una de tipo
float te sobra espacio. Te explico por qué.
El tipo
float utiliza
4 bytes para almacenar (en
formato de punto flotante) números en el intervalo +/- [ 1.2*10^(-38) , 3.4*10^(38) ]. El tipo
double utiliza
8 bytes para almacenar (en
formato IEEE de doble precisión) números en el intervalo +/- [2.3*10^(-308) , 1.7*10^(308) ].
Es decir, que tanto el tipo
float como el tipo
double te proporcionan una cantidad ingente de números posibles. Es cierto que el tipo
double te da mucha más precisión que el tipo
float, pero estás almacenando una calificación para la que no necesitarás más de 3 o 4 cifras significativas, precisión que el tipo
float te asegura más que de sobra, y usando la mitad de memoria. Además, con el formato
double necesitas el doble de tiempo para las operaciones, por lo que también estás desperdiciando tiempo de ejecución.
Un saludo,
gonzo