Cita:
parJ=valorJ-mediaJ;
| |||
problema restar dos double hola tengo una operacion que simplemente hace una resta, todas las variables se declaran de tipo double. ValorJ=4.0 y mediaJ=2.2 pues bien al restar en lugar de almacenar en parJ=1,8 se almacena 1,79999999999 alguien me puede decir que puedo hacer para que se almacene 1.8? Cita: parJ=valorJ-mediaJ; |
| |||
Respuesta: problema restar dos double
__________________ Un camino de mil millas comienza por el primer paso. Lao Tse |
| |||
Respuesta: problema restar dos double Si quieres precisión, hay que usar BigDecimal. Los tipos primitivos y sus wrapper, como en la mayoría de lenguajes, son de precisión limitada por razones de rendimiento.. S!
__________________ Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana. |
| |||
Respuesta: problema restar dos double El problema es que 4.0 - 2.2 no da 1.8 si no que da 1.79999999... y eso es un problema de precisión de los double. Mostrarlo por pantalla redondeando sólo "maquilla" el problema, que es que la resta no es correcta con la precisión deseada. S!
__________________ Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana. |
| |||
Respuesta: problema restar dos double el problema es para algunos números para otros no, he buscado por internet y dice que hay algunos números que no se pueden almacenar y entonces pone la aproximación la verdad es que no entiendo cual es el problema pero por lo visto es de java y del tipo de compilador que tengas. No se como solucionarlo si alguien sabe algo, pk con redondeo o formato no se soluciona el problema. |
| |||
Respuesta: problema restar dos double copio literalmente lo leido: Cita: otra pagina con información sobre esto:Esta peculiaridad en el uso de números de coma flotante viene directamente del uso de los números en el procesador, con lo que cada lenguaje puede aportar o no aportar una solución. Este error en la representación de los números decimales se refiere a que algunas fracciones decimales no se pueden representar exactamente como fracciones binarias (de base 2). Ésta es la principal razón de que Python, Perl, C, C++, Java, Fortran y muchos otros no suelan presentar el número decimal exacto. http://support.microsoft.com/kb/125056/es |
| |||
Respuesta: problema restar dos double El "problema" en concreto es laargo de explicar, pero básicamente es que los tipos primitivos pueden almacenar un numero de digitos finito y los numeros de coma flotante pueden tener un número de digitos infinito, así que al representar algunos numeros se pierde, especialmente al realizar operaciones, aunque parezcan simples. Es cuestión de la aritmética con números de punto/coma flotante. La solución en Java, como ya te he dicho, es usar BigDecimal, que tiene precisión "infinita". S!
__________________ Para obtener respuestas, pregunta de forma inteligente o si no, pregunta lo que quieras que yo contestaré lo que me dé la gana. |
| ||||
Respuesta: problema restar dos double Todo depende, que quieres representar con esos datos. Si es una función matematica que requiera mucha exactitud podrás usar lo que el compañero GreenEyed sugiere, pero estoy deacuerdo con elAntonie probablemente no necesites tanta presición... Esto podría resolver tu problema si tus calculos no necesitan tanta presicion... http://java.sun.com/j2se/1.4.2/docs/...berFormat.html Saludos...
__________________ -- NOTA: Si haz conseguido la solución a tu problema, por favor edita el titulo del tema colocando el prefijo [SOLUCIONADO], para que otros usuarios puedan encontrar soluciones más rápido. |
Etiquetas: |