Tags Palabras claves

Error de javascript

28/12/2005 - 12:57 por Daniel Fernández | Informe spam
Hola, existe un problema con Explorer 6.0 (varias versiones). Cuando
ejecuto el codigo de abajo, resta mal los float. Debe ser un problema de
implementacion de javascript.

Codigo:
<html>
<head>
<script>
function resta() {
var pp = 4.1;
var p = 0.1;

while (pp > 0) {
document.write("<br>" + pp);
pp = pp-p;
}
}
</script>
</head>
<body onload="resta()">
</body>
</html>

Segmentation Fault

Preguntas similare

Leer las respuestas

#1 Ramón Sola [MVP Windows - Shell/User]
29/12/2005 - 18:25 | Informe spam
Hash: SHA1

Yo no lo calificaría como un error de implementación de Javascript. He
elaborado un pequeño programa en C equivalente y los resultados son
similares.

#include <stdio.h>

int main(void)
{
double pp = 4.1, p = 0.1;

while (pp > 0) {
printf("%.20lf", pp);
pp = pp - p;
}
}

Esto se debe a la dificultad para representar con exactitud algunos números
decimales en binario, de la misma forma que nosotros perdemos cierta
precisión al intentar representar la fracción 1/3 en base 10
(0.3333333333...).


Más información:

PRB: Multiplication Errors in JScript
http://support.microsoft.com/kb/244699

Aunque el artículo se centre en pérdidas de precisión al multiplicar, los
fundamentos se pueden aplicar a cualquier operación sobre números de punto
flotante.

Ramón Sola / / MVP Windows - Shell/User
Para obtener la dirección correcta no hacen falta los sellos.
Por favor, usar el correo sólo para cuestiones ajenas a los
grupos de noticias, gracias.

Cuentan que "Daniel Fernández"
escribió en el mensaje
news: lo siguiente:
Mostrar la cita
#2 Daniel Fernández
30/12/2005 - 09:05 | Informe spam
Si, el resultado es parecido, pero el código en C que has puesto no pasa de
4.1 a 3.999999 saltandose el 4.0 como pasa en javascript. Ese es el error al
que me refiero.

Segmentation Fault


"Ramón Sola [MVP Windows - Shell/User]" wrote:

Mostrar la cita
#3 Ramón Sola [MVP Windows - Shell/User]
31/12/2005 - 01:40 | Informe spam
Hash: SHA1

¿Tienes un compilador para poder probar el programa escrito en C?

Ramón Sola / / MVP Windows - Shell/User
Para obtener la dirección correcta no hacen falta los sellos.
Por favor, usar el correo sólo para cuestiones ajenas a los
grupos de noticias, gracias.

Cuentan que "Daniel Fernández"
escribió en el mensaje
news: lo siguiente:
Mostrar la cita
#4 Daniel Fernández
02/01/2006 - 09:35 | Informe spam
No, en realidad me he inventado la respuesta, no te jode. Si lo digo es
porque lo he probado. Cygwin con gcc. Resultado:
4.09999999999999964473
3.99999999999999955591
3.89999999999999946709
3.79999999999999937828
3.69999999999999928946
3.59999999999999920064
3.49999999999999911182
3.39999999999999902300
3.29999999999999893419
3.19999999999999884537
3.09999999999999875655
2.99999999999999866773
2.89999999999999857891
2.79999999999999849010
2.69999999999999840128
2.59999999999999831246
2.49999999999999822364
2.39999999999999813483
2.29999999999999804601
2.19999999999999795719
2.09999999999999786837
1.99999999999999777955
1.89999999999999769074
1.79999999999999760192
1.69999999999999751310
1.59999999999999742428
1.49999999999999733546
1.39999999999999724665
1.29999999999999715783
1.19999999999999706901
1.09999999999999698019
0.99999999999999700240
0.89999999999999702460
0.79999999999999704681
0.69999999999999706901
0.59999999999999709122
0.49999999999999711342
0.39999999999999713562
0.29999999999999715783
0.19999999999999715228
0.09999999999999714673

Segmentation Fault


"Ramón Sola [MVP Windows - Shell/User]" wrote:

Mostrar la cita
#5 Ramón Sola [MVP Windows - Shell/User]
03/01/2006 - 01:20 | Informe spam
Hash: SHA1

Paso del tema.

Ramón Sola / / MVP Windows - Shell/User
Para obtener la dirección correcta no hacen falta los sellos.
Por favor, usar el correo sólo para cuestiones ajenas a los
grupos de noticias, gracias.

Cuentan que "Daniel Fernández"
escribió en el mensaje
news: lo siguiente:
Mostrar la cita
Ads by Google
Search Busqueda sugerida