![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| Programación de Alto Nivel Plantear preguntas acerca de C, C + +, Java, SQL, y otros lenguajes de programación aquí. |
Más UNIX y Linux Foro Temas usted puede encontrar útiles
|
||||
| Hilo | Hilo para principiantes | Foro | Respuestas | Último mensaje |
| Discrepancia en / var / adm / messages | sundar3350 | Sun Solaris | 15 | 03-11-2009 11:23 AM |
| ¿Cómo puedo obtener un pasado de HTML:: entidades de discrepancia en un RPM? | jjinno | UNIX for Dummies Preguntas y Respuestas | 2 | 08-07-2007 01:39 PM |
| VSFTP rareza | Spetnik | UNIX for Dummies Preguntas y Respuestas | 7 | 04-28-2004 03:58 PM |
| NEI ingreso discrepancia | Henrik | UNIX for Dummies Preguntas y Respuestas | 11 | 04-08-2003 10:17 AM |
| Su Contraseña Oddity | jacobsa | UNIX for Dummies Preguntas y Respuestas | 4 | 05-30-2002 08:50 AM |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
||||
|
Java resta doble rareza (no la habitual discrepancia redondeo)
He estado pasando por un tutorial de java, y corrió a través de algún extraño en este pequeño ejemplo ... Código:
class SqrRoot {
public static void main(String args[]) {
double num,sroot,rerr,resquare;
for(num = 1.0; num < 100.0; num++) {
sroot = Math.sqrt(num);
System.out.println("Square root of " + num + " is " + sroot);
// compute rounding error
resquare = (sroot * sroot);
rerr = num - resquare;
System.out.println("Rounding error: num + " - " + resquare + " = " + rerr);
System.out.println();
}
}
}
El retorno es extraño - cuando vi los resultados, he escrito un pequeño programa que restan una serie de números de punto flotante literal, todo con el normal binario a decimal rareza (1,002 - 1,001 \u003d .000999999997), pero cuando ejecuto el anterior código, me sale lo siguiente: Código:
Square root of 1.0 is 1.0 1.0 - 1.0 = 0.0 Square root of 2.0 is 1.4142135623730951 2.0 - 2.0000000000000004 = -4.440892098500626E-16 Square root of 3.0 is 1.7320508075688772 3.0 - 2.9999999999999996 = 4.440892098500626E-16 .... No estoy seguro si es algo de lo que estoy haciendo mal o lo que está causando. He buscado por todas partes y todos los que he encontrado es la gente preguntando sobre las limitaciones del hardware de la aritmética de punto flotante. Cualquier ayuda sería muy apreciada. Publicar Actualización ----- ----- Después de ver que aquí sólo me di cuenta de que no teniendo en cuenta la notación científica ... Niño ahora me siento tonta
|
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|