用javascript写计算器

这篇博客介绍了如何使用JavaScript编写一个计算器,重点关注页面布局采用table,控制新数输入的FlagNewNum变量,以及在进行计算时如何将字符串转换为浮点数进行操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

用javascript写计算器

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>计算器</title>
    <script type="text/javascript">
    var FKeyPad = document.Keypad;
    var Accum = 0;
    var FlagNewNum = false;
    var PendingOp = "";
    //数字键控制函数
function NumPressed(Num) {
if (FlagNewNum) 
{
document.Keypad.ReadOut.value  = Num;
FlagNewNum = false;
        }
else
{
if (document.Keypad.ReadOut.value == "0")
document.Keypad.ReadOut.value = Num;
else
document.Keypad.ReadOut.value += Num;
}
}
//加、减、乘、除、等号键被按下时执行该函数
function Operation(Op)
{PendingOp = Op;
var Readout = document.Keypad.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);
document.Keypad.ReadOut.value = Accum;

  }
}
//按下小数点时执行该函数
function Decimal() 
{
var curReadOut = document.Keypad.ReadOut.value;
if (FlagNewNum) 
{
curReadOut = "0.";
FlagNewNum = false;
    }
else
{
if (curReadOut.indexOf(".") == -1)
curReadOut += ".";
        }
document.Keypad.ReadOut.value = curReadOut;
}
//当CE键被按下时执行该函数,将当前输入的数清除
function ClearEntry() 
{
document.Keypad.ReadOut.value = "0";
FlagNewNum = true;
}
//当C键被按下时执行该函数,将计算器恢复到初始状态

function Clear()
{
Accum = 0;
PendingOp = "";
ClearEntry();
}
//[+/-]按钮按下时执行该函数,将当前输入取相反数
function Neg()
{
document.Keypad.ReadOut.value = parseFloat(document.Keypad.ReadOut.value) * -1;
}
//[%]键按下时执行该函数
function Percent()
{
document.Keypad.ReadOut.value = (parseFloat(document.Keypad.ReadOut.value) / 100) * parseFloat(Accum);}

    </script>
</head>
<body>
<center>
    <form name="Keypad" action="">
    <table>
        <tr>
            <td colspan="3">
            <input name="ReadOut" type="Text" size=24 value="0" width=100%>
            </td>
            <td><input name="btnClear" type="Button" value="  C  " onclick="Clear()"></td>
            <td><input name="btnClearEntry" type="Button" value="CE " onclick="ClearEntry()"></td>
        </tr>
        <tr></tr>
        <tr>
            <td><input name="btnOne" type="Button" value="  1  " onclick="NumPressed(1)"></td>
            <td><input name="btnTwo" type="Button" value="  2  " onclick="NumPressed(2)"></td>
            <td><input name="btnThree" type="Button" value="  3  " onclick="NumPressed(3)"></td>
            <td><input name="btnPlus" type="Button" value="  +  " onclick="Operation('+')"></td>
            <td><input name="btnMinus" type="Button" value="  -  " onclick="Operation('-')"></td>
        </tr>
        <tr>
            <td><input name="btnFive" type="Button" value="  4  " onclick="NumPressed(4)"></td>
            <td><input name="btnFive" type="Button" value="  5  " onclick="NumPressed(5)"></td>
            <td><input name="btnFive" type="Button" value="  6  " onclick="NumPressed(6)"></td>
            <td><input name="btnMultiply" type="Button" value="  *  " onclick="Operation('*')"></td>
            <td><input name="btnDivide" type="Button" value="  /  " onclick="Operation('/')"></td>
        </tr>
        <tr>
            <td><input name="btnSeven" type="Button" value="  7  " onclick="NumPressed(7)"></td>
            <td><input name="btnSeven" type="Button" value="  8  " onclick="NumPressed(8)"></td>
            <td><input name="btnSeven" type="Button" value="  9  " onclick="NumPressed(9)"></td>
            <td><input name="btnNeg" type="Button" value=" +/- " onclick="Neg()"></td>
            <td><input name="btnPercent" type="Button" value="  % " onclick="Percent()"></td>
        </tr>
        <tr>
            <td><input name="btnZero" type="Button" value="  0  " onclick="NumPressed(0)"></td>
            <td colspan="3"><input name="btnDecimal" type="Button" value="  .  " onclick="Decimal()"></td>
            <td><input name="btnEquals" type="Button" value="  =  " onclick="Operation('=')"></td>
        </tr>
    </table>
    </form>
</center>
</body>
</html>

注意点:

  1. 页面采用table布局
  2. FlagNewNum是用来控制是否由新的数
  3. 从文本框中取出来的值相当于字符串,直接加上+num就可以了
  4. 进行计算时用:parseFloat将字符串转为浮点数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值