Foros del Web » Programando para Internet » Javascript »

Funcion parseFloat

Estas en el tema de Funcion parseFloat en el foro de Javascript en Foros del Web. HOla Que tal Tengo la siguiente duda Uso esta funcion para recibir mi datos numericos Código: val1 = parseFloat(document.isc.valor_1.value) y asi recibo varios valores, hacen ...
  #1 (permalink)  
Antiguo 19/11/2008, 13:51
 
Fecha de Ingreso: marzo-2005
Ubicación: Guadalajara, Jal
Mensajes: 164
Antigüedad: 19 años, 2 meses
Puntos: 1
De acuerdo Funcion parseFloat

HOla Que tal Tengo la siguiente duda

Uso esta funcion para recibir mi datos numericos

Código:
 val1 = parseFloat(document.isc.valor_1.value)
y asi recibo varios valores, hacen mis usuarios sus calculos pero en muchas ocaciones al arrojarme los resultados me manda asi 14812.099999999998 con muchos decimales.
mi duda/Pregunta si hay alguna forma de que no me ponga tantos decimales por decir 14812.09

Gracias !!! y Saludos
  #2 (permalink)  
Antiguo 19/11/2008, 13:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funcion parseFloat

Prueba así:
Código javascript:
Ver original
  1. valor = Math.round(parseFloat(document.isc.valor_1.value) * 100) / 100;
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 19/11/2008, 15:24
 
Fecha de Ingreso: marzo-2005
Ubicación: Guadalajara, Jal
Mensajes: 164
Antigüedad: 19 años, 2 meses
Puntos: 1
De acuerdo Respuesta: Funcion parseFloat

No Amigo ya lo puse a funcionar la correcion que me hiciste pero hace lo mismo
Gracias Que mas podre hacer ?
  #4 (permalink)  
Antiguo 19/11/2008, 15:29
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funcion parseFloat

Yo lo probé y sí funciona, ¿cómo trataste de implementarlo? ¿has revisado la Consola de Errores de tu navegador?. Además que el nombre de la variable en el ejemplo lo puse como "valor", revisa si es esa variable la que estás tratando de utilizar.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 19/11/2008, 15:39
 
Fecha de Ingreso: marzo-2005
Ubicación: Guadalajara, Jal
Mensajes: 164
Antigüedad: 19 años, 2 meses
Puntos: 1
Respuesta: Funcion parseFloat

asi lo implemente con mis variables

Código:
val1 = Math.round(parseFloat(document.isc.valor_1.value) * 100) / 100;
  #6 (permalink)  
Antiguo 19/11/2008, 15:47
 
Fecha de Ingreso: marzo-2005
Ubicación: Guadalajara, Jal
Mensajes: 164
Antigüedad: 19 años, 2 meses
Puntos: 1
De acuerdo Respuesta: Funcion parseFloat

Te PAso Mi Funcion


Código:
function calcular_iva()
		{
			
			valor1 = Math.round(parseFloat(document.isc.cantidad1.value) * 100) / 100; 
			valor2 = Math.round(parseFloat(document.isc.cantidad2.value) * 100) / 100;
			valor3 = Math.round(parseFloat(document.isc.cantidad3.value) * 100) / 100;
			valor4 = Math.round(parseFloat(document.isc.cantidad4.value) * 100) / 100;
			valor5 = Math.round(parseFloat(document.isc.cantidad5.value) * 100) / 100;
			valor6 = Math.round(parseFloat(document.isc.cantidad6.value) * 100) / 100;
			valor7 = Math.round(parseFloat(document.isc.cantidad7.value) * 100) / 100;
			
			val1 = Math.round(parseFloat(document.isc.valor_1.value) * 100) / 100;
			val2 = Math.round(parseFloat(document.isc.valor_2.value) * 100) / 100;
			val3 = Math.round(parseFloat(document.isc.valor_3.value) * 100) / 100;
			val4 = Math.round(parseFloat(document.isc.valor_4.value) * 100) / 100;	
			val5 = Math.round(parseFloat(document.isc.valor_5.value) * 100) / 100;
			val6 = Math.round(parseFloat(document.isc.valor_6.value) * 100) / 100;
			val7 = Math.round(parseFloat(document.isc.valor_7.value) * 100) / 100;
							
			ivarete = Math.round(parseFloat(document.isc.ivarete.value) * 100) / 100;
			ieh =  Math.round(parseFloat(document.isc.ieh.value) * 100) / 100;
			cant = Math.round(parseFloat(document.isc.cantidad.value) * 100) / 100;		

			suma1 = (val1 + val2 + val3 + val4 + val5 + val6 + val7)
			suma = (valor1 + valor2 + valor3 + valor4 + valor5 + valor6 + valor7 ) 
			
			subtotal = (suma1 + suma)
			iva = (parseFloat(suma )* 0.15) 
			con_iva = (suma + iva)
			
			total = (suma1 + con_iva) 
			total = total - ivarete
			total = total + ieh
			saldo = cant - total
			
			document.isc.subtotal.value = subtotal
			document.isc.iva.value = iva
			document.isc.total.value = total
			document.isc.saldo.value = saldo
						 						
		}
  #7 (permalink)  
Antiguo 19/11/2008, 15:47
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Pregunta Respuesta: Funcion parseFloat

Yo insisto en que funciona, ¿has puesto alert(val1) justo después de esa instrucción para ver el resultado?.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #8 (permalink)  
Antiguo 19/11/2008, 15:49
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funcion parseFloat

¿Y esa función que tienes da algún error o algo así?. O solo no produce el resultado esperado . Además, sugiero que en vez de aplicar en cada valor ese código, hazlo únicamente en el resultado.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #9 (permalink)  
Antiguo 19/11/2008, 15:53
 
Fecha de Ingreso: marzo-2005
Ubicación: Guadalajara, Jal
Mensajes: 164
Antigüedad: 19 años, 2 meses
Puntos: 1
De acuerdo Respuesta: Funcion parseFloat

No la funcion esta correcta solo es eso que me arroja en algunos casos el resultado con decimales muy extensos
  #10 (permalink)  
Antiguo 19/11/2008, 15:57
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: Funcion parseFloat

Como te dije, en lugar de aplicar el redondeo a cada valor, aplica solo a los resultados (subtotal, iva, total y saldo).
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:33.