Java - error de precisión en un double

 
Vista:
Imágen de perfil de Carmen
Val: 6
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

error de precisión en un double

Publicado por Carmen (10 intervenciones) el 20/07/2021 16:20:50
uno

Buenos días!
De antemano agradezco su orientación en mi pregunta.
anexo imagen para ser mas explicita en mi pregunta.
La cuestión es que esas pocas líneas de código dan como salida el valor 3.2 y debería ser 3.3.

Estoy intentando que tras ingresar 3 notas:
nota1=2.0 (vale el 15% de la nota final)
nota2=2.2 (vale el 20% de la nota final)
nota3=3.3 (vale el 25% de la nota final)
con los datos anteriores se debe calcular el valor de nota4 necesario para que la nota final sea de 3.5

El problema es que estoy perdiendo decimales.
como podría solucionar esto?

Por allí he leído lo del BigDecimal, pero, no habrá otras formas de evitar esto??

Muchas gracias por su valiosa orientación.
Feliz dia
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

error de precisión en un double

Publicado por Tom (1831 intervenciones) el 20/07/2021 18:53:01
Es difícil de entender tu problema. ¿ Por qué piensas que es un error de precisión ?
Según me parece entender nota4 debería ser el 40% de la nota final ... si el 60% de la nota final ya es menor que 3.3 para llegar a 3.5 el 40% restante debería ser mayor que 3.5 (o sea, nota4 no puede ser solamente 3.5, sino algo mayor) ...
Lo que creo es que tu fórmula no es correcta ... o que los valores que has copiado no son los buenos.

Mis cálculos (que pueden estar mal) usan esto:

double n4 = (3.5 - ((n1 * 0.15) + (n2 * 0.2) + (n3 * 0.25))) / 0.4;

Que da un resultado (con los valores que tú has puesto) de 4.837500

Para comprobar, hago esto:

double n5 = (n1 * 0.15) + (n2 * 0.2) + (n3 * 0.25) + (4.8375 * 0.4);

Y da el resultado esperado de 3.5
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Carmen
Val: 6
Ha aumentado su posición en 4 puestos en Java (en relación al último mes)
Gráfica de Java

error de precisión en un double

Publicado por Carmen (10 intervenciones) el 20/07/2021 19:08:00
Claro !!!! lo estaba haciendo mal !!!! que horror !!!! yo estaba dividiendo por el mismo 60%, y realmente se debe dividir por el 40%...
gracias por el dato, feliz dia.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar