Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Oi gente ^^
Tenho que fazer uma calculadora em javascript que só faça soma e subtração, sem usar a função eval!
Já olhei em 8475853443753450642 fóruns e não encontrei nada que pudesse me ajudar efetivamente. O pessoal pra resolver o problema de ter duas variáveis somando, acaba usando dois <input type="text"> só que eu só posso usar um... realmente não estou conseguindo desenvolver esse código, se alguém puder ajudar POR FAVOR AJUDE hahaha tenho até as 22:00 pra entregar esta bagaça.
O que eu tenho por enquanto é isso (com eval):
-----------------HTML-----------------
<form name="form">
<table>
<tr>
<input type="text" id="tela">
</tr>
<tr>
<td><input type="button" value="7" onclick="verConta(value);"></td>
<td><input type="button" value="8" onclick="verConta(value);"></td>
<td><input type="button" value="9" onclick="verConta(value);"></td>
</tr>
<tr>
<td><input type="button" value="4" onclick="verConta(value);"></td>
<td><input type="button" value="5" onclick="verConta(value);"></td>
<td><input type="button" value="6" onclick="verConta(value);"></td>
</tr>
<tr>
<td><input type="button" value="1" onclick="verConta(value);"></td>
<td><input type="button" value="2" onclick="verConta(value);"></td>
<td><input type="button" value="3" onclick="verConta(value);"></td>
</tr>
<tr>
<td><input type="button" value="-" onclick="verConta(value);"></td>
<td><input type="button" value="0" onclick="verConta(value);"></td>
<td><input type="button" value="+" onclick="verConta(value);"></td>
</tr>
<tr>
<td><input type="button" value="CL" onclick="CL()"></td>
<td><input type="button" value="=" onclick="verResultado();"></td>
<td><input type="button" value=""></td>
</tr>
</table>
</form>
-----------------JAVASCRIPT-----------------
function verConta(valor){
document.getElementById('tela').value += valor;
}
function CL(){
document.getElementById('tela').value ="";
}
function verResultado(valor){
var total = 0;
total = document.getElementById('tela').value;
CL();
document.getElementById('tela').value = eval(total);
}
:(Não foi muito específico. Digitei um bloco de comandos adicionais no seu código para ver se entende ele. (este é um método um pouco amplo para o usuário declarar o número digitado - fiz um tamanho limitado que aceita apenas 5 números)
var numberOrder=[0,0,0,0,0];//5. Pode mais se quiser, de acordo com os loops.
function verConta(valor){
var i;
valor=parseFloat(valor);
for(i=0;5>i;i++){
if(numberOrder[i]===0){
if(numberOrder[i+1]!==0){
//Valor adicionado à sequência...
numberOrder[i]=valor;
break
}
}else{
break
}
}
var numberToAdd,
parsedNumber=0;
//Interpretando a sequência.
//quinta ordem (dezena de milhar)
numberToAdd=[0,10000,20000,30000,40000,50000,60000,70000,80000,90000];
parsedNumber+=numberToAdd[numberOrder[0]];
//quarta ordem (milhar)
numberToAdd=[0,1000,2000,3000,4000,5000,6000,7000,8000,9000];
parsedNumber+=numberToAdd[numberOrder[1]];
//terceira ordem (centena)
numberToAdd=[0,100,200,300,400,500,600,700,800,900];
parsedNumber+=numberToAdd[numberOrder[2]];
//segunda ordem (dezena)
numberToAdd=[0,10,20,30,40,50,60,70,80,90];
parsedNumber+=numberToAdd[numberOrder[3]];
//primeira ordem (unidade)
parsedNumber+=numberOrder[4];
document.getElementById("tela").value=parsedNumber
}
function CL(){
numberOrder=[0,0,0,0,0];
document.getElementById("tela").value=""
}
function verResultado(valor){
CL()
//...
}
Isso é base para digitar o número. PS: o exemplo do usuário acima tem um código diferente, talvez seja mais prático.
Mylla,
Veja se isso te ajuda: Simple Calculator - Codepen.