还是参考一下这个吧:
<html><head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>JAVA计算器</title>
<style type="text/css">
<!--
td {  font: 9pt "宋体"; color: #FFFFFF}
.Button {  font: 9pt "宋体"; color: #FFFFFF; background: #brown; margin: 4px 4px; width: 40px; height: 20px; border-color: #CCCCCC #333333 #333333 #CCCCCC; border-top-width: 2px; border-right-width: 2px; border-bottom-width: 2px; border-left-width: 2px}
.text_input {  font: 9pt "Verdana", "Arial", "Helvetica", "sans-serif"; color: #000000; background: #CCCCCC; text-align: right}
a {  font: 9pt "宋体"; color: #FFFFFF}
-->
</style>
</head><body bgcolor="#CCCC99" topmargin="0" leftmargin="1"
marginwidth="1" marginheight="1">
<form name="Keypad">
  <div align="center">
    <center>
      <br>
      <table border="1" cellpadding="0"
    cellspacing="1" width="249" bgcolor="#B5B56A"
    bordercolor="#D0CC98" height="60">
        <tr>
            <td align="middle" colspan="4"><input type="text"
            size="25" name="ReadOut" value="0" width="100%"
            class="text_input"></td>
            <td width="0"><input type="button" name="btnClear"
            value="  C  " onclick="Clear()" class="Button"></td>
            <td width="50"><input type="button"
            name="btnClearEntry2" value=" CE "
            onclick="ClearEntry()" class="Button"></td>
        </tr>
        <tr>
            <td align="center" width="50"><input type="button"
            name="btnSeven" value="  7  " onclick="NumPressed(7)"
            class="Button"></td>
            <td align="center" width="50"><input type="button"
            name="btnEight" value="  8  " onclick="NumPressed(8)"
            class="Button"></td>
            <td align="center" width="50"><input type="button"
            name="btnNine" value="  9  " onclick="NumPressed(9)"
            class="Button"></td>
            <th width="50"><p align="left"><input type="button"
            name="btnHex" value="HEX" onclick="hexchange()"
            class="Button"></p>
            </th>
            <td align="center" width="0"><input type="button"
            name="btnClearEntry222" value="OCT"
            onclick="octchange()" class="Button"></td>
            <td align="center" width="50"><input type="button"
            name="btnClearEntry223" value="BIN"
            onclick="binchange()" class="Button"></td>
        </tr>
        <tr>
            <td width="50"><input type="button" name="btnFour"
            value="  4  " onclick="NumPressed(4)" class="Button"></td>
            <td width="50"><input type="button" name="btnFive"
            value="  5  " onclick="NumPressed(5)" class="Button"></td>
            <td width="50"><input type="button" name="btnSix"
            value="  6  " onclick="NumPressed(6)" class="Button"></td>
            <td width="50"><input type="button" name="btnPlus"
            value="  +  " onclick="Operation('+')" class="Button"></td>
            <td width="0"><input type="button" name="btnNeg"
            value=" +/- " onclick="Neg()" class="Button"></td>
            <td width="50"><input type="button" name="btnPercent"
            value=" % " onclick="Percent()" class="Button"></td>
        </tr>
        <tr>
            <td width="50"><input type="button" name="btnOne"
            value="  1  " onclick="NumPressed(1)" class="Button"></td>
            <td width="50"><input type="button" name="btnTwo"
            value="  2  " onclick="NumPressed(2)" class="Button"></td>
            <td width="50"><input type="button" name="btnThree"
            value="  3  " onclick="NumPressed(3)" class="Button"></td>
            <td width="50"><input type="button" name="btnMinus"
            value="  -   " onclick="Operation('-')"
            class="Button"></td>
            <td width="0"><input type="button" name="btnMultiply"
            value="  *  " onclick="Operation('*')" class="Button"></td>
            <td width="50"><input type="button" name="btnDivide"
            value="  /   " onclick="Operation('/')"
            class="Button"></td>
        </tr>
        <tr>
            <td width="50"><input type="button" name="btnZero"
            value="  0  " onclick="NumPressed(0)" class="Button"></td>
            <td width="50"><input type="button" name="btnDecimal"
            value="   .  " onclick="Decimal()" class="Button"></td>
            <td width="50"><input type="button" name="btnEquals"
            value="  =  " onclick="Operation('=')" class="Button"></td>
            <td width="50"> </td>
            <td width="0"> </td>
            <td width="50"> </td>
        </tr>
    </table>
    </center></div>
</form>
<script language="JavaScript">
var FKeyPad = document.Keypad;
var Accum = 0;
var FlagNewNum = false;
var PendingOp = "";
function NumPressed (Num) {
if (FlagNewNum) {
FKeyPad.ReadOut.value  = Num;
FlagNewNum = false;
   }
else {
if (FKeyPad.ReadOut.value == "0")
FKeyPad.ReadOut.value = Num;
else
FKeyPad.ReadOut.value += Num;
   }
}
function Operation (Op) {
var Readout = FKeyPad.ReadOut.value;
if (FlagNewNum && PendingOp != "=");
else
{
FlagNewNum = true;
if ( '+' == PendingOp )
Accum += parseFloat(Readout);
else if ( '-' == PendingOp )
Accum -= parseFloat(Readout);
else if ( '/' == PendingOp )
Accum /= parseFloat(Readout);
else if ( '*' == PendingOp )
Accum *= parseFloat(Readout);
else
Accum = parseFloat(Readout);
FKeyPad.ReadOut.value = Accum;
PendingOp = Op;
   }
}
function Decimal () {
var curReadOut = FKeyPad.ReadOut.value;
if (FlagNewNum) {
curReadOut = "0.";
FlagNewNum = false;
   }
else
{
if (curReadOut.indexOf(".") == -1)
curReadOut += ".";
   }
FKeyPad.ReadOut.value = curReadOut;
}
function ClearEntry () {
FKeyPad.ReadOut.value = "0";
FlagNewNum = true;
}
function Clear () {
Accum = 0;
PendingOp = "";
ClearEntry();
}
function Neg () {
FKeyPad.ReadOut.value = parseFloat(FKeyPad.ReadOut.value) * -1;
}
function Percent () {
FKeyPad.ReadOut.value = (parseFloat(FKeyPad.ReadOut.value) / 100) * parseFloat(Accum);
}
function hexchange()
{
var hex,dec;
dec = parseFloat(FKeyPad.ReadOut.value);
hex = dec.toString(16);
window.alert("该十进制数转成十六进制数为:"+ hex);
}
function octchange()
{
var oct,dec;
dec = parseFloat(FKeyPad.ReadOut.value);
oct = dec.toString(8);
window.alert("该十进制数转成八进制数为:"+ oct);
}
function binchange()
{
var bin,dec;
dec = parseFloat(FKeyPad.ReadOut.value);
bin = dec.toString(2);
window.alert("该十进制数转成二进制数为:"+ bin);
}
</script>
</body>
</html>

解决方案 »

  1.   

    weidegong(weidegong) :你的程式结果界面十分美观,尽管不能做连续运算,但是也算是能完成一般人的要求,并且操作可以只按鼠标。
    不过我想,他最大的长处是程式长,如果卖的话,可以卖个好价钱我的程式注重实用,只适合有一点数学基础的人,可以做连续运算,可以做大数运算
    当然,我的程式的最大缺点就是太短,如果卖给别人的话,别人肯定是不会要的
    呵呵
    呜呼
      

  2.   

    JK_10000(JK1) :1.界面不够友好。
    2.功能也非常有限,出了加减乘除,还支持什么操作?
    3.如果学过编译原理,试着把包含sin/cos/乘方/开方等表达式进行解析,那会是个卖点。就现在使用一个eval,摆明了欺负外行人吗
      

  3.   

    只要稍稍改一下,就可以:
    支持变量运算:
    支持数学里如三角函数等的运算
    支持……………的确
    它的核心就是一个eval
    所以我说我的程式的致命弱点就是短
    怎么解释
    别人也会说:就现在使用一个eval,摆明了欺负外行人吗!!!
      

  4.   

    呵呵,你这个算作简单的对javascript的二次开发。卖出去的话,也相当于你提供了一点对于Javascipt的技术支持,如此而已只要。,支持你做做试试?且让用户易于使用
      

  5.   

    weidegong(weidegong) :以下程式支持变最计算:
    如果再稍稍修改一下,可以让它支持数学里的其它如三角、指数等的运算<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <meta name="GENERATOR" content="Microsoft FrontPage 4.0">
    <meta name="ProgId" content="FrontPage.Editor.Document">
    <title>算式</title>
    </head>
    <body>
    <form name=frm onsubmit="return jisuan()">
    变量: <input name="bianliang" size=40 >输入变量请在不同的变最之间用<font color=red>,</font>隔开,如<font color=red>a=1,b=2</font><br>
    算式:<input name="suanshi" size=40 ><input type=submit value="开始计算" ><br>
    结果:<input name="jieguo" size=40><br>
    </form>
    <script language=javascript>
    function jisuan()
    {
    try {
    eval("var "+frm.bianliang.value+";");
    eval("frm.jieguo.value="+frm.suanshi.value);
    frm.suanshi.value="("+frm.suanshi.value+")";
    frm.suanshi.focus();
     }
    catch(exception){alert("算式有误");}
    return false;
    }
    </script>
    </body>
    </html>
      

  6.   

    以上程式里eval里的"var "应该为"var JKhaveatest=1,"
      

  7.   

    以上程式里eval里的"var "应该为"var JKhaveatest=1,"不若如此:
    if(frm.bianliang.value.length>0) eval("var "+frm.bianliang.value+";");
      

  8.   

    还应该去掉frm.bianliang.value前后的空格,更好一点
      

  9.   

    加一句:frm.bianliang.value=frm.bianliang.value.replace(/\W/g,"");
      

  10.   

    以上一句应为:
    frm.bianliang.value=frm.bianliang.value.replace(/[\W,]/g,"");
      

  11.   

    还是错了,我得再去查一查怎么表示除a-zA-Z0-9._,=之外的任意字符怎么表示
      

  12.   

    我所看到的别人做的计算器几乎都是单输入(输出框)的
    就是与我们的实际计算器相仿
    所以功能十分有限利用多输入输出框,本计算器已经有了:
    1.()的功能
       -----算式输完后敲一下回车就可以看到
    2. 记录表达式的功能
       ------记录了表达式,就可以进行回退操作
       -----一长串的算式输入完后发现某一个数输入错误,可以进行改正,然后重算
    3. 变量操作
    4. 函数支持
    5. 扩展性好另外:
    1. 结果的输入框应为readonly
    2. 在结果的后面应该加一个按钮,点击后将结果代替算式
      

  13.   

    去campo.3322.net看一下啊,那里有一个科学计算器,很棒的。