簡易電卓

eval()関数・・・()内の文字列がコードとして解釈され、scriptとして実行できる。
 tmptotal = eval(tmptotal +pre_op + tmp);
 文字列数字(tmptotal,tmp)を数値に変換し、演算子(pre_op)を使い計算する。
(注意)小数は入力できない。[C]は表示欄だけをクリアする。[AC]は全てクリアし初期化する。

<style type="text/css">
<!--
table {background-color:skyblue}
td {text-align: center}
input {width:40px; font-family: "Times New Roman", "Times",
"serif"; font-size: 20px; color: #000066; text-align: center}
-->
</style>
<SCRIPT language="JavaScript"><!--
tmp = ""; //入力された数字
tmptotal = "0"; //計算結果の数字
pre_op = ""; //直前に選択されている演算子
function Init(){ //初期化、クリア
document.form1.info.value = "0";
tmp = "";
tmptotal = "0";
pre_op = "";
}
function InputNum(num){ //数字ボタンが押された場合
if(pre_op == "=")Init(); //=演算子が押された直後の場合は初期化
if(document.form1.info.value == "0")tmp = num; //"05"のように先頭に0がつくのを防ぐ
else tmp += num; //押された数字ボタンを、押された順番に並べる
document.form1.info.value = tmp; //表示欄に表示
}
function Calc(op){ //演算子ボタンが押された場合
if(pre_op == "")tmptotal = tmp;//演算子ボタンが一度も押されていない場合
else if(pre_op == "=")tmptotal = tmptotal;
else tmptotal = eval(tmptotal +pre_op + tmp);//直前に押された演算子で計算
document.form1.info.value = tmptotal;
tmp = ""; //入力された数字を初期化
pre_op = op; //今押された演算子を、直前に押された演算子として保持
}
function Clear(){ //クリア[C]ボタンが押された場合、入力数字と表示欄だけをクリア
tmp = "";
document.form1.info.value = "";
}
//--></SCRIPT>
</head>
<body>
<table border="1"><form name="form1">
<tr><td colspan="4">
<input type="text" name="info" value="0" size= 16 style="width:130px;color:red;text-align:right">
</td></tr>
<tr>
<td><input type="button" value="7" onclick="InputNum(this.value)"></td>
<td><input type="button" value="8" onclick="InputNum(this.value)"></td>
<td><input type="button" value="9" onclick="InputNum(this.value)"></td>
<td><input type="button" value="/" onclick="Calc('/')"></td>
</tr>
<tr>
<td><input type="button" value="4" onclick="InputNum(this.value)"></td>
<td><input type="button" value="5" onclick="InputNum(this.value)"></td>
<td><input type="button" value="6" onclick="InputNum(this.value)"></td>
<td><input type="button" value="×" onclick="Calc('*')"></td>
</tr>
<tr>
<td><input type="button" value="1" onclick="InputNum(this.value)"></td>
<td><input type="button" value="2" onclick="InputNum(this.value)"></td>
<td><input type="button" value="3" onclick="InputNum(this.value)"></td>
<td><input type="button" value="−" onclick="Calc('-')"></td>
</tr>
<tr>
<td><input type="button" value="0" onclick="InputNum(this.value)"></td>
<td><input type="button" value="C" onclick="Clear()"></td>
<td><input type="button" value="?" onclick="alert('現在の計算値は\n\t'+tmptotal)"></td>
<td><input type="button" value="+" onclick="Calc('+')"></td>
</tr>
<tr>
<td colspan="2"><input type="button" value="A C" style="width:70px" onclick="Init()"></td>
<td colspan="2"><input type="button" value="=" style="width:70px" onclick="Calc('=')"></td>
</tr>
</form></table>

end(01/8/7)