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