Dudas de conversión

revontulet
27 de Enero del 2010
Buenas ! He hecho un programa, con el cual, introduciendo la velocidad, horas de viaje, minutos y segundos, te dice la distancia recorrida.



Horas y minutos bien, al introducirlo te dice los km exactos, pero cuando pongo los segundos, se complica la cosa.



Si yo pongo:
Velocidad 120

Horas 1

Minutos 59

Segundos 60, debería dar el resultado de : 240 Km/h, sin embargo me da 238,5 Km.

El código es el siguiente:



<script language="Javascript">

var velocidad=0; //Km/h
var tiempo=0; //horas
var segundos=0;
var minutos=0;
var horas=0;
var total=0;
var sumahoras=0;
var sumahoras2=0;



</script>
</head>
<body>
<script language="JavaScript">


//Introducción de velocidad
velocidad=(prompt("A que velocidad circulas? ",""));


//Introducción del tiempo
horas=(prompt("Cuantas horas de trayecto llevas? ",""));
tiempo=(prompt("Cuantos minutos de trayecto has hecho? ",""));
segundos=(prompt("Cuantos segundos de más has recorrido? ",""));


//Conversión
minutos=(tiempo/60);
sumahoras=velocidad*horas;
sumahoras2=(60/velocidad);


//Operación
total=(velocidad*minutos)+(sumahoras+sumahoras2);


//Resultado
alert("Has recorrido un total de "+total+" Kilómetros" );

</script>



Podriais decirme cual es el problema?

Gracias de antemano

Carles
27 de Enero del 2010
Eso son fallos que se producen cuando se trabaja con decimales y las variables no están completamente definidas. En muchos casos estás mezclando variables enteras y variables en coma flotante.

En estos casos siempre debes trabajar con números grandes para evitar fallos en decimales, con lo cual te recomiendo que hagas una conversión de Km/h a m/s (metros por segundo) y lo pases todo a segundos.

Otra posibilidad es que uses funciones como parseFloat y declaraciones del tipo var=0.0; en lugar de var=0;


Saludos!
http://www.xatcom.net Diseño web y comunicación