La sencillez de este programa radica en el uso de la función eval() de javascript
var numerosChildren = document.getElementById('numeros').children; var operadoresChildren = document.getElementById('operadores').children; var teclas=[]; for(var i=0; i< numerosChildren .length; i++){ teclas[i]=numerosChildren[i].getAttribute("title"); } for(var i=0; i< operadoresChildren .length; i++){ teclas.push(operadoresChildren[i].getAttribute("title")); } var result = document.getElementById("result"); var total= document.getElementById("total"); var escribe = document.getElementById("escribe"); function crearNumeros(num){ switch(num) { case '<-': var res = result.innerText.substring(-3,result.innerText.length-1); result.innerText = res; break; case 'Reset': result.innerHTML=(""); break; case '=': escribe.innerText = escribe.innerText + num; result.innerText = total.innerText; break; default: operar(num); } }; function operar(num){ escribe.innerHTML = result.innerHTML + num; var addResultado = result.innerHTML = result.innerHTML + num; if (eval(addResultado) != "" || eval(addResultado) ==0 ) { result.innerHTML = addResultado; total.innerHTML=(eval(addResultado)); } } document.onkeypress = function (e) { var letra = String.fromCharCode(e.keyCode); switch(e.keyCode) { case 46: crearNumeros('<-'); // Supr break; case 13: crearNumeros('=');// Enter = break; default: if(teclas.includes(letra)){crearNumeros(letra);} }; }