Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renato Sales

Colocar casas decimais em numeros inteiros

Recommended Posts

Olá pessoal, estou com o seguinte problema: Tenho uma variavel que desejo comparar com outro valor, mas a variavel é digitada pelo usuario, esse usuario pode entrar com os valores tanto int ( 45 ) ou float (45.00), gostaria de colocar todos os valores que vierem no formato inteiro para float, pois quando comparo 45 >= 44.00 e 45.00 >= 45.00 funciona , mas se comparo 45 >= 45.00 ele não funciona, não dá restrição, faz como se 45 fosse menor que 45.00.Desde já agradeço.Renato Sales.Tentei o parseFloat(45), mas ele retornou 45 do mesmo jeito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,Não entedi o que queres.Mas se você quer mascarar no ASP:

a = 45response.write formatnumber(a,2)
Agora isto depende de com seu campo esta sendo armazena e recuperado do bd.Agora se você que mascar online em JavaScript diz ai que podemos arrumar uma função para lhe ajudar.Na área de JavaScript deve ter exemplos prontos.t+

Olá pessoal, estou com o seguinte problema: Tenho uma variavel que desejo comparar com outro valor, mas a variavel é digitada pelo usuario, esse usuario pode entrar com os valores tanto int ( 45 ) ou float (45.00), gostaria de colocar todos os valores que vierem no formato inteiro para float, pois quando comparo 45 >= 44.00 e 45.00 >= 45.00 funciona , mas se comparo 45 >= 45.00 ele não funciona, não dá restrição, faz como se 45 fosse menor que 45.00.Desde já agradeço.Renato Sales.Tentei o parseFloat(45), mas ele retornou 45 do mesmo jeito.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Jothaz, quero mascarar online no javaScript mesmo, só pra fazer a comparação, e se o valor for maior ou igual eu vou exibir a mensagem de erro, mas tentei este formatnumber(a,2) que o jonathandj sugeriu, e não funcionou. Se você tiver uma função em Jscript que consiga converter o numero inteiro para um float me ajudaria.Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Bom segue duas funções que retirei e adaptei da internet msm. Não sei que é a melhor forma mas funcoina e váras páginas aqui onde trabalham usam.

<HTML><HEAD>	<script>		function FormataValor(campo,tammax,teclapres) {			var tecla = teclapres.keyCode;			if (tecla == 46){				teclapres.keyCode = 0;				"<p style='text-align: right'>"			}					vr = campo.value;			vr = vr.replace( "/", "" );			vr = vr.replace( "/", "" );			vr = vr.replace( ",", "" );			vr = vr.replace( ".", "" );			vr = vr.replace( ".", "" );			vr = vr.replace( ".", "" );			vr = vr.replace( ".", "" );			tam = vr.length;							if (tam >= tammax && tecla != 8 && tecla != 9 && tecla != 0){				return false;			}						if (tam < tammax && tecla == 8  && tecla == 9 && tecla == 0){ 			tam = vr.length + 1;} 			if (tecla == 8 ){				tam = tam - 1;					if ( tecla == 8 || tecla == 0 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 && tammax <= 8 ){				if ( tam <= 2 ){ 					if (tam == 2) { campo.value = '0,' + vr; }					if (tam == 1) { campo.value = '0,0' + vr; }			 		if (tam == 0) { campo.value = '0,00'; }			 	}			 	if ( (tam > 2) && (tam <= 5) ){			 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); }	 			if ( (tam >= 6) && (tam <= 8) ){			 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }				Organiza(campo,campo.value);			}			}				}		function FormataValorDEC(fld, milSep, decSep, e){			var sep = 0;			var key = '';			var i = j = 0;			var len = len2 = 0;			var strCheck = '0123456789';			var aux = aux2 = '';			var whichCode = (window.Event) ? e.which : e.keyCode;			if (whichCode == 13 || whichCode == 0 || whichCode == 8) 				return true;  // Enter			//-- Fim SISOL00150669 - Plantaforma lunix  								key = String.fromCharCode(whichCode);  // Get key value from key code			if (strCheck.indexOf(key) == -1) 				return false;  // Not a valid key			len = fld.value.length;			if (len >= 14 ){ 				var MAux;				MAux = fld.value;				while (MAux.indexOf('.') != -1) MAux = MAux.replace('.','');				MAux = MAux.replace(',','');				MAux = FormataMilhar(MAux);				fld.value = MAux;								return false;			}			for(i = 0; i < len; i++)			if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) 				break;			aux = '';			for(; i < len; i++)				if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);			aux += key;			len = aux.length;			if (len == 0) 				fld.value = '';			if (len == 1) 				fld.value = '0'+ decSep + '0' + aux;			if (len == 2) 				fld.value = '0'+ decSep + aux;			if (len > 2) 				{				aux2 = '';				for (j = 0, i = len - 3; i >= 0; i--) 					{					if (j == 3) 						{						aux2 += milSep;						j = 0;						}					aux2 += aux.charAt(i);					j++;					}					fld.value = '';					len2 = aux2.length;					for (i = len2 - 1; i >= 0; i--)						fld.value += aux2.charAt(i);					fld.value += decSep + aux.substr(len - 2, len);									}				fld.value = fld.value;							return false;		}	</script></HEAD><BODY><!--Para utilizar faça como o exemplo seguinte:-->Valor:<input name="VrPreco" value  size="12" maxlength="12"  onKeyDown="return(FormataValor(this,11,event));" onKeyPress="return(FormataValorDEC(this,'.',',',event));" ></BODY></HTML>

Caso você queira algo mais robusto dê uma pesquisada na área de "Javascript´s" em http://forum.imasters.com.br/index.php?showforum=6

 

 

t+

 

 

 

Jothaz, quero mascarar online no javaScript mesmo, só pra fazer a comparação, e se o valor for maior ou igual eu vou exibir a mensagem de erro, mas tentei este formatnumber(a,2) que o jonathandj sugeriu, e não funcionou.

Se você tiver uma função em Jscript que consiga converter o numero inteiro para um float me ajudaria.

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Camarada,

 

Bom segue duas funções que retirei e adaptei da internet msm. Não sei que é a melhor forma mas funcoina e váras páginas aqui onde trabalham usam.

<HTML><HEAD>	<script>		function FormataValor(campo,tammax,teclapres) {			var tecla = teclapres.keyCode;			if (tecla == 46){				teclapres.keyCode = 0;				"<p style='text-align: right'>"			}					vr = campo.value;			vr = vr.replace( "/", "" );			vr = vr.replace( "/", "" );			vr = vr.replace( ",", "" );			vr = vr.replace( ".", "" );			vr = vr.replace( ".", "" );			vr = vr.replace( ".", "" );			vr = vr.replace( ".", "" );			tam = vr.length;							if (tam >= tammax && tecla != 8 && tecla != 9 && tecla != 0){				return false;			}						if (tam < tammax && tecla == 8  && tecla == 9 && tecla == 0){ 			tam = vr.length + 1;} 			if (tecla == 8 ){				tam = tam - 1;					if ( tecla == 8 || tecla == 0 || tecla >= 48 && tecla <= 57 || tecla >= 96 && tecla <= 105 && tammax <= 8 ){				if ( tam <= 2 ){ 					if (tam == 2) { campo.value = '0,' + vr; }					if (tam == 1) { campo.value = '0,0' + vr; }			 		if (tam == 0) { campo.value = '0,00'; }			 	}			 	if ( (tam > 2) && (tam <= 5) ){			 		campo.value = vr.substr( 0, tam - 2 ) + ',' + vr.substr( tam - 2, tam ); }	 			if ( (tam >= 6) && (tam <= 8) ){			 		campo.value = vr.substr( 0, tam - 5 ) + '.' + vr.substr( tam - 5, 3 ) + ',' + vr.substr( tam - 2, tam ); }				Organiza(campo,campo.value);			}			}				}		function FormataValorDEC(fld, milSep, decSep, e){			var sep = 0;			var key = '';			var i = j = 0;			var len = len2 = 0;			var strCheck = '0123456789';			var aux = aux2 = '';			var whichCode = (window.Event) ? e.which : e.keyCode;			if (whichCode == 13 || whichCode == 0 || whichCode == 8) 				return true;  // Enter			//-- Fim SISOL00150669 - Plantaforma lunix  								key = String.fromCharCode(whichCode);  // Get key value from key code			if (strCheck.indexOf(key) == -1) 				return false;  // Not a valid key			len = fld.value.length;			if (len >= 14 ){ 				var MAux;				MAux = fld.value;				while (MAux.indexOf('.') != -1) MAux = MAux.replace('.','');				MAux = MAux.replace(',','');				MAux = FormataMilhar(MAux);				fld.value = MAux;								return false;			}			for(i = 0; i < len; i++)			if ((fld.value.charAt(i) != '0') && (fld.value.charAt(i) != decSep)) 				break;			aux = '';			for(; i < len; i++)				if (strCheck.indexOf(fld.value.charAt(i))!=-1) aux += fld.value.charAt(i);			aux += key;			len = aux.length;			if (len == 0) 				fld.value = '';			if (len == 1) 				fld.value = '0'+ decSep + '0' + aux;			if (len == 2) 				fld.value = '0'+ decSep + aux;			if (len > 2) 				{				aux2 = '';				for (j = 0, i = len - 3; i >= 0; i--) 					{					if (j == 3) 						{						aux2 += milSep;						j = 0;						}					aux2 += aux.charAt(i);					j++;					}					fld.value = '';					len2 = aux2.length;					for (i = len2 - 1; i >= 0; i--)						fld.value += aux2.charAt(i);					fld.value += decSep + aux.substr(len - 2, len);									}				fld.value = fld.value;							return false;		}	</script></HEAD><BODY><!--Para utilizar faça como o exemplo seguinte:-->Valor:<input name="VrPreco" value  size="12" maxlength="12"  onKeyDown="return(FormataValor(this,11,event));" onKeyPress="return(FormataValorDEC(this,'.',',',event));" ></BODY></HTML>

Caso você queira algo mais robusto dê uma pesquisada na área de "Javascript´s" em http://forum.imasters.com.br/index.php?showforum=6

 

 

t+

 

 

 

Jothaz, quero mascarar online no javaScript mesmo, só pra fazer a comparação, e se o valor for maior ou igual eu vou exibir a mensagem de erro, mas tentei este formatnumber(a,2) que o jonathandj sugeriu, e não funcionou.

Se você tiver uma função em Jscript que consiga converter o numero inteiro para um float me ajudaria.

 

Obrigado.

Valeu cara, mas acabei de conseguir utilizando o parsefloat mesmo... só que nos meus primeiros testes eu tentava somente o parsefloat na variavel que recebia o valor do usuario, para funcionar coloquei as 2 variaveis com o parseFloat na hora de comparar. Ficou da seguinte forma a minha comparação:

if(parseFloat(variavel1) >= parseFloat(variavel2))
Valeu galera pela ajuda, muito obrigado.

Não sei se neste fórum tem a politica de finalizar o tópico, mas por mim já dou como finalizado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.