Ir para conteúdo

POWERED BY:

Arquivado

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

jowe

Quem é o maior número. Problemas na validação do maior

Recommended Posts

Pessoal,

 

Tenho a seguinte situação, um usuário informa 2 valores em suas respectivas input´s, preciso comprarar se 1 valor é maior q outro.... se o usuário digitar os seguintes valores a validação não funciona....

 

Exemplo:

Valor a: 999,99999999
	Valor b: 1.000.000,00000000


	a Lógica

		if (a.value > b.value)
		 {
			 ....... 
		  }
no exemplo acima ele está entrando dentro do IF, mas não deveria pois a é < b ... alguém sabe me informar o por que disso ??

 

Ele está se perdendo na formatação ????

 

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente arredondar, definindo um numero maximo de casas decimais

decimais = 2; //quantidade de casas decimais

var multiplicador = Math.pow(10,decimais);

numero1 = Math.round(numero1 * multiplicador); // Multiplicacao para fazer comaparacao de inteiros ao inves de float

numero2 = Math.round(numero2 * multiplicador);

//Agora é so fazer a comparacao.

este codigo faz o seguinte:

 

numero1 definido inicialmente como 999,9999999

apos passar por esse codigo, se eu modificar o decimais para 7,

torna-se 9999999999 inteiro.

 

acredito que seja um jeito simples de contornar este problema..

 

espero que ajude http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vale lembrar que o separador decimal é o ponto, e o de milhares é a virgula.

O sistema americano é diferente do nosso. Faça as conversões antes de comparar.

 

use um replace, invetendo esses símbolos.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Provavelmente pq ele está comparando strings "texto"

 

Tente converter esses valores para float para q ele possa comparar.

 

você tem q remover os pontos e transformar "," em "." e depois usar a função "parseFloat()" e comparar os valores.

 

Faz isso aee e testa pra ver se funfa.

 

/***** editando ******/

 

Fiquei na curiosidade e resoli fazer um exemplo aqui, até mesmo para eu usar como exemplo caso eu precise fazer isso

 

segue o código

 

<script language="javascript">
	function testando(){
		var numero1 = document.getElementById('t1').value;
		var numero2 = document.getElementById('t2').value;
		
		var numero1 = replaceAll(numero1,".","");
		var numero1 = replaceAll(numero1,",",".");

		var numero2 = replaceAll(numero2,".","");
		var numero2 = replaceAll(numero2,".",",");						

		alert(numero2);
		if (parseFloat(numero1)>parseFloat(numero2))alert('t1 é maior');

	}

/* fonte de onde peguei o código de replaceAl ->l http://rogeriolino.wordpress.com/tag/javascript/page/2/ */
	function replaceAll(string, token, newtoken) {
	while (string.indexOf(token) != -1) {
		string = string.replace(token, newtoken);
	}
	return string;
	}	
</script>



<input type="text" id="t1" />
<input type="text" id="t2" />

<a href="#" onclick="testando()"> clique </a>

 

abss

Compartilhar este post


Link para o post
Compartilhar em outros sites

q bom q conseguiu cara :http://forum.imasters.com.br/public/style_emoticons/default/clap.gif:

 

no q precisar tamos ae:D

 

absss

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.