Foros del Web » Programando para Internet » Javascript »

problema con multiplicacion muy sencilla

Estas en el tema de problema con multiplicacion muy sencilla en el foro de Javascript en Foros del Web. Hola a todos Llevo un rato con una funcion bastante sencilla pero con la que me he trabado y no consigo ver el error... Se ...
  #1 (permalink)  
Antiguo 21/02/2008, 02:44
 
Fecha de Ingreso: junio-2003
Mensajes: 778
Antigüedad: 20 años, 10 meses
Puntos: 1
problema con multiplicacion muy sencilla

Hola a todos

Llevo un rato con una funcion bastante sencilla pero con la que me he trabado y no consigo ver el error...

Se trata de calcular un importe en base a un precio, un porcentaje y una superficie:
Código:
function escribir() {
	
var superficie_m=eval ('document.calculador.superficie.value');
var cantidad=eval ('document.calculador.cantidad.value');
var porcentaje_m=eval ('document.calculador.porcentaje.value');
var precio=document.calculador.espesor.options[document.calculador.espesor.selectedIndex].value;

var importe_porcentaje=(precio*porcentaje_m)/100;
var tarifa=precio+importe_porcentaje;
var cantidad2=(superficie_m*tarifa*cantidad);

var decimales=2;

var cantidad3 = parseFloat(cantidad2);
var decimales = parseFloat(decimales);
decimales = (!decimales ? 0 : decimales); // 2 decimales por defecto.
var precio_final=Math.round(cantidad3 * Math.pow(10, decimales)) / Math.pow(10, decimales);


var resultado3=document.getElementById('precio').innerHTML = 'Precio: '+precio_final+' €';

return resultado3;
}
El html del formulario es este:

Código:
<form action="calculador_tarifas.php" method="post" name="calculador">
<table width="650" border="0" cellspacing="0" cellpadding="0">
  <tr>

    <td width="156" bgcolor="#e2007a">&nbsp;</td>
    <td width="494" bgcolor="#e2007a">&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td align="right">Cantidad:&nbsp;</td>

    <td>&nbsp;<input type="text" name="cantidad" size="6" onKeyUp="escribir()"></td>
  </tr> 
   <tr>
    <td align="right">Porcentaje sobre tarifa:&nbsp;</td>
    <td>&nbsp;<input type="text" name="porcentaje" size="6" onKeyUp="escribir()"> %</td>
  </tr>   
  <tr>    
    <td colspan="2" align="center">
        <table width="100%" border="0" cellspacing="0" cellpadding="0">

          <tr>
            <td>
             
    Espesor&nbsp;<select name="espesor" onChange="escribir()">
    <option value='22.29'>2.0</option> 
<option value='10.90'>2.1</option> 
<option value='10.86'>2.2</option> 
	</select>
             	</td>

            <td> Superficie m<sup>2</sup> <input type="text" name="superficie" size="8" onKeyUp="escribir()"></td>
            <td>&nbsp;</td>
          </tr>
        </table>    </td>

  </tr>
  <tr>    
    <td colspan="2" align="right"><div id="precio" style="font-size:24px; font-weight:bold"></div></td>
  </tr>    
</table>
</form>
Me devuelve valor NaN

Alguna sugerencia??
  #2 (permalink)  
Antiguo 21/02/2008, 11:15
Avatar de Bellenger  
Fecha de Ingreso: noviembre-2004
Ubicación: En un lugar del Mundo...
Mensajes: 599
Antigüedad: 19 años, 5 meses
Puntos: 4
Re: problema con multiplicacion muy sencilla

Cambia el eval... por parsefloat asi:
esto...
Código PHP:
   var superficie_m=eval ('document.calculador.superficie.value'); 
por esto...
Código PHP:
   var superficie_m=parseFloat(document.calculador.superficie.value); 
La funcion eval se utiliza para ejecutar instrucciones...
__________________
Un Caballero Jura Lealtad. Usa su espada para suprimir la Injusticia No Conoce el Odio y Tampoco el AMOR...
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 19:43.