Ir para conteúdo
Fórum Script Brasil
  • 0

! Desafio !


BartS

Pergunta

Galera, o lance é o seguinte:

Eu tenho uma função muito simples de subtração de dois valores, mas o JavaScript NÃO CONSEGUE FAZER A CONTA CERTA de jeito nenhum.

Já tentei tudo, e não consegui descobrir o erro.....

Será que alguém aí se habilita a tentar me ajudar?

estou mandando o código.

O que eu quero é recuperar a parte decimal do número, e guardar em uma variável.

Mas todo número (com duas casas decimais) que eu digito, o JavaScript erra a conta na hora de subtrair o valor digitado pelo valor da parte inteira do número digitado.

Por exemplo.

Quando eu digito 1.13, eu faço a subtração do número digitado (1.13) pelo seu inteiro ( parseInt(1.13) ), mas aí, PARA MINHA SURPRESA, o resultado não dá 0.13...... Tá duvidando????? Faz o teste aí.

Aí vai o código.....

<html>
<head>
<title>:: N&atilde;o consegue subtrair ::</title>
<script language="javascript"><!--
	function SoNum() { 
    if((event.keyCode < 48 && event.keyCode != 46) || (event.keyCode > 57)) { 
       event.returnValue = false; 
    } 
	}
	function subtrai(Num){
  var cents;	
  cents = Num - parseInt(Num);
  
  // Aki em baixo são alguns teste que eu fiz usando diretamente NUMEROS e não o valor passado pela variável, e ainda assim não funcionou
  // cents = 1.13 - 1.00;  -> Teste simples e que não funciona
  // cents = (1.13 - 1) + 0.0000000000000001  -> Desse jeito o merda funciona!!!!!!!
  // cents = (1.13*100 - 1.00*100)/100;  -> Assim, tirando as casas decimais e depois colocando de novo, também não funciona
  alert(cents);
	}
//--></script>
</head>
<body>
<form name="Form" method="post" action="">
  <p>Num1: 
    <input name="n1" type="text" onKeyPress="SoNum();" value="1.13">
    <input type="button" name="Submit" value="Calcula" onClick="subtrai(Form.n1.value);"><br>
    chama a fun&ccedil;&atilde;o no &quot;onBlur&quot;</p>
</form>
</body>
</html>

mad.gif Já estou quase esmurrando o computador.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

A melhor forma de resolver o problema é usando o método de arredondamento (Match.round)

Ele consegue recuperar o valor dos centavos sem alteração para um número de até centenas de trilhões.

Aí vai o código:

<html>
<head>
<title>:: N&atilde;o consegue subtrair ::</title>
<script language="javascript"><!--
	function SoNum() { 
  if((event.keyCode < 48 && event.keyCode != 46) || (event.keyCode > 57)) { 
  	event.returnValue = false; 
  } 
	}

	function subtrai(Num){
  var cents;
  cents = Math.round((Num - parseInt(Num)) *100)/100;
  alert(cents);
	}
//--></script>
</head>
<body>
<form name="Form" method="post" action="">
<p>Num1: <input name="n1" type="text" onKeyPress="SoNum();" value="1.13">
  <input type="button" name="Submit" value="Calcula" onClick="subtrai(Form.n1.value);"></p>
</form>
</body>
</html>

Valeu pela força galera!!!!!!!!!! cool.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...