JavaScriptでの電卓プログラム例です。上の『電卓表示』ボタンを押すと開きます。
加減乗除のみで、キーボードからの入力も可能にしています。
まだ、製作途中で、多少、表示におかしなところがあるかも知れません。
桁数を制限、整理(誤差が出ない桁)していないので、小数点以下末端部分で
誤差が生じ、故に、計算結果は信用できません?し、オチも加えていません。(笑)
まあ、末端の桁を排除すれば、それなりに信用できる値です。
以下が、プログラムコードです。
説明コメントは、ほとんど付けていませんので、解読してください。

<html><head>
<script language="JavaScript">
<!--
var TempOp=0;
var Op1=0;
var Op2=0;
var DecimalFrag=false;
var NumOps=0;
var LastInput="NONE";
var OpFlag=" ";
var TempReadOut="0.";

function start(){
DecimalFrag=false;
NumOps=0;
LastInput="NONE";
OpFlag=" ";
ReadOut.value="0.";
}

function KP(){
fobj=document.forms[0].elements;
for(i=0;i<fobj.length;i++){
document.forms[0].elements[i].blur();
}
if(document.all)evt=event;
intK=evt.keyCode;
switch(intK){
case 13://『=』 key
Operator("=");
break;
case 27://『ESC』 key
Cancel();
break;
case 42://『*』 key
Operator("*");
break;
case 43://『+』 key
Operator("+");
break;
case 45://『-』 key
Operator("-");
break;
case 46://『.』 key
Decimal();
break;
case 47://『/』 key
Operator("/");
break;

case 48://以下、テンキー
Number(0);
break;
case 49:
Number(1);
break;
case 50:
Number(2);
break;
case 51:
Number(3);
break;
case 52:
Number(4);
break;
case 53:
Number(5);
break;
case 54:
Number(6);
break;
case 55:
Number(7);
break;
case 56:
Number(8);
break;
case 57:
Number(9);
break;
}
}
//-->
</script>
</head>
<body bgcolor="#000000" onKeyPress="KP()">
<br><br>
<input type="text" name="ReadOut" size="29" value="0." style="font-size: 14pt; text-align: right ;background-color: #CCFFCC; font-weight: bold; color: red"><br><br>
<form>
<table>
<tr>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"></td>
<td align="center" valign="middle"><input type="button" value=" CE "
name="CancelEntryButton" style="font-size: 11pt; font-weight: bold; color: red"
onClick="CancelEntry();"></td>
<td align="center" valign="middle"><input type="button" value=" C "
name="CancelButton" style="font-size: 11pt; font-weight: bold; color: red" onClick="Cancel();"></td>
</tr>
<tr>
<td align="center" valign="middle"><input type="button" value=" 7 " name="NUM7" style="font-size: 11pt; font-weight: bold; color: black" onClick="Number(7);"></td> <td align="center" valign="middle"><input type="button" value=" 8 " name="NUM8" style="font-size: 11pt; font-weight: bold; color: black" onClick="Number(8);"></td> <td align="center" valign="middle"><input type="button" value=" 9 " name="NUM9" style="font-size: 11pt; font-weight: bold; color: black" onClick="Number(9);"></td> <td align="center" valign="middle"><input type="button" value=" ÷ " name="OP1" style="font-size: 11pt; font-weight: bold; color: red" onClick="Operator('/');"></td> <td align="center" valign="middle"></td>
</tr>
<tr>
<td align="center" valign="middle"><input type="button" value=" 4 " name="NUM4" style="font-size: 11pt; font-weight: bold; color: black" onClick="Number(4);"></td> <td align="center" valign="middle"><input type="button" value=" 5 " name="NUM5" style="font-size: 11pt; font-weight: bold; color: black" onClick="Number(5);"></td> <td align="center" valign="middle"><input type="button" value=" 6 " name="NUM6" style="font-size: 11pt; font-weight: bold; color: black" onClick="Number(6);"></td> <td align="center" valign="middle"><input type="button" value=" × " name="OP2" style="font-size: 11pt; font-weight: bold; color: red" onClick="Operator('*');"></td> <td align="center" valign="middle"></td>
</tr>
<tr>
<td align="center" valign="middle"><input type="button" value=" 1 " name="NUM1" style="font-size: 11pt; font-weight: bold; color: black" onClick="Number(1);"></td> <td align="center" valign="middle"><input type="button" value=" 2 " name="NUM2" style="font-size: 11pt; font-weight: bold; color: black" onClick="Number(2);"></td> <td align="center" valign="middle"><input type="button" value=" 3 " name="NUM3" style="font-size: 11pt; font-weight: bold; color: black" onClick="Number(3);"></td> <td align="center" valign="middle"><input type="button" value=" − " name="OP3" style="font-size: 11pt; font-weight: bold; color: red" onClick="Operator('-');"></td> <td align="center" valign="middle"></td>
</tr>
<tr>
<td align="center" valign="middle"><input type="button" value=" 0 " name="NUM0" style="font-size: 11pt; font-weight: bold; color: black" onClick="Number(0);"></td> <td align="center" valign="middle"><input type="button" value=" . " name="DEC" style="font-size: 11pt; font-weight: bold; color: black" onClick="Decimal();"></td> <td align="center" valign="middle"></td>
<td align="center" valign="middle"><input type="button" value=" + " name="OP4" style="font-size: 11pt; font-weight: bold; color: red" onClick="Operator('+');"></td> <td align="center" valign="middle"><input type="button" value=" = " name="OP5" style="font-size: 11pt; font-weight: bold; color: red" onClick="Operator('=');"></td> </tr>
</table>
</form>
</div><br></font>
<script language="JavaScript">
<!--
function Cancel(){
ReadOut.value="0.";
Op1=0;
Op2=0;
start();
}

function CancelEntry(){
ReadOut.value="0.";
DecimalFrag=false;
LastInput="CE";
}

function Decimal(){
if (LastInput=="NEG"){
ReadOut.value="-0.";
}else{
if(LastInput!="NUMS"){
ReadOut.value="0.";
}
}
DecimalFrag=true;
LastInput="NUMS";
}

function Number(Index){
if(LastInput!="NUMS"){
ReadOut.value=".";
DecimalFrag=false;
}
if(DecimalFrag){
ReadOut.value=ReadOut.value+String(Index);
}else{
ReadOut.value=ReadOut.value.split(".")[0]+String(Index)+".";
}
LastInput="NUMS";
stTemp=new Object(ReadOut.value);
if((stTemp.charAt(0)=="0")&&(stTemp.charAt(1)==".")){
ReadOut.value=ReadOut.value;
}else{
if(stTemp.charAt(0)=="0"){
ReadOut.value=stTemp.substring(1,stTemp.length);
}
}
}


function Operator(Str){
TempReadOut=ReadOut.value;
if(LastInput=="NUMS"){
NumOps=NumOps+1;
}
switch(NumOps){
case 0:
if((Str == "-") && (LastInput != "NEG")){
LastInput="NEG";
}
break;
case 1:
Op1=ReadOut.value;
if((Str == "-") && (LastInput != "NUMS") && (OpFlag != "=")){
LastInput="NEG";
}
break;
case 2:
Op2=TempReadOut;
switch(OpFlag){
case "+":
Op1=eval(Op1)+eval(Op2);
break;
case "-":
Op1=eval(Op1)-eval(Op2);
break;
case "*":
Op1=eval(Op1)*eval(Op2);
break;
case "/":
if(Op2==0){
alert("ゼロで除算はできません!");
}else{
Op1=eval(Op1)/eval(Op2);
}
break;
case "=":
Op1=Op2;
break;
case "%":
Op1=eval(Op1)*eval(Op2);
break;
}
ReadOut.value=Op1;
NumOps=1;
}
if(LastInput!="NEG"){
LastInput="OPS";
OpFlag=Str;
}
}

//-->
</script>
</body></html>