Dudas de conversión
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
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
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
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