js计算器文字解释(内含完整代码)
Js制作简单计算器
首先用number1,和number2 去存储第一个数和第二个数,
var Number1 = ""; //输入第一个数
var Number2 = ""; //输入第二个数
然后设置一个数值用于调用函数,和另一个用于调用方法
var NewNumber = "blank";
var opvalue = "";
。。开始第一个函数,用于输出文本框里面的数值
function Num(number){
document.calculator.answer.value=number; //输出值
}
第二个函数
function CheckNumber(answer) { //读取输入值
1.if(answer == ".") {
Number = document.calculator.answer.value;
if(Number.indexOf(".") != -1) {
answer = "";
}
}
2.if(NewNumber == "yes") {
Number2 += answer;
Num(Number2);
}else {
if(NewNumber == "blank") {
Number1 = answer;
Number2 = "";
NewNumber = "no";
} else {
Number1 += answer;
}
3.Num(Number1);
1.用来判断小数点,当用户点击小数点的时候调用这个函数,用Number存储之前的数值,indexof()判断之前有没有小数点,因为一个数最多只能有一个小数点,如果不等于-1,则说明前面存在了小数点。这样就把现在的小数点弄成空,如果不等于-1,开始下面的if语句,2.后面解释。
3.调用上面的num函数
用一个加法来解释下计算器的功能,
4.function AddButton(x) { //加
if(x == 1) EqualButton();
if(Number2 != "") {
Number1 = parseFloat(Number1) + parseFloat(Number2);
}
NewNumber = "yes";
opvalue = '+';
Num(Number1);
}
5.function EqualButton() { //等号
if(opvalue == '+') AddButton(0);
if(opvalue == '-') SubButton(0);
if(opvalue == '*') MultButton(0);
if(opvalue == '/') DivButton(0);
Number2 = "";
opvalue = "";
}
具体流程如下。
当用户输入第一个值的时候,NewNumber不等于yes,等于blank,所以调用
if(NewNumber == "blank") {
Number1 = answer;
Number2 = "";
NewNumber = "no";
然后返回Num(Number1);在文本框中输出answer的值。
当用户输入+的时候,按钮调用4。
按钮:
说明X现在等于1,调用if(x == 1) EqualButton();
在没有else的if里面可以省略{},
但是要注意此时的if(x == 1) EqualButton()函数包含了下面的一小块程序,
总的应该是if(x == 1){
EqualButton();
NewNumber = "yes";
opvalue = '+';
Num(Number1);
}
此时调入方法EqualButton(),然后输入一个新的数值,因为此时的NewNumber = "yes";
所以调用if(NewNumber == "yes") {
Number2 += answer;
Num(Number2);
文本输出第二个数的数值,
然后按按钮等于调用EqualButton()方法。此时有number1和number2的数值,但由于读取的时候可能里面存在了浮点数类型,所以用parseFloat(Number1)转换类型。之后开始计算。Num(Number1);调用函数输出。
这样一个小型的加法计算器就完成了。
完整代码如下:
var Number1 = ""; //输入第一个数
var Number2 = ""; //输入第二个数
var NewNumber = "blank";
var opvalue = "";
function Num(number){
document.calculator.answer.value=number; //输出值
}
function ClearCalc() { //清屏
Number1 = "";
Number2 = "";
NewNumber = "blank";
Num("");
}
function CheckNumber(answer) { //读取输入值
if(answer == ".") {
Number = document.calculator.answer.value;
if(Number.indexOf(".") != -1) {
answer = "";
}
}
if(NewNumber == "yes") {
Number2 += answer;
Num(Number2);
}else {
if(NewNumber == "blank") {
Number1 = answer;
Number2 = "";
NewNumber = "no";
} else {
Number1 += answer;
}
Num(Number1);
}
}
function AddButton(x) { //加
if(x == 1) EqualButton();
if(Number2 != "") {
Number1 = parseFloat(Number1) + parseFloat(Number2);
}
NewNumber = "yes";
opvalue = '+';
Num(Number1);
}
function SubButton(x) { //减
if(x == 1) EqualButton();
if(Number2 != "") {
Number1 = parseFloat(Number1) - parseFloat(Number2);
}
NewNumber = "yes";
opvalue = '-';
Num(Number1);
}
function MultButton(x) { //乘
if(x == 1) EqualButton();
if(Number2 != "") {
Number1 = parseFloat(Number1) * parseFloat(Number2);
}
NewNumber = "yes";
opvalue = '*';
Num(Number1);
}
function DivButton(x) { //除
if(x == 1) EqualButton();
if(Number2 != "") {
Number1 = parseFloat(Number1) / parseFloat(Number2);
}
NewNumber = "yes";
opvalue = '/';
Num(Number1);
}
function SqrtButton() { //开方
Number1 = Math.sqrt(Number1);
NewNumber = "blank";
Num(Number1);
}
function RecipButton() { //倒数
Number1 = 1/Number1;
NewNumber = "blank";
Num(Number1);
}
function NegateButton() { //正负数切换
Number1 = parseFloat(-Number1);
NewNumber = "no";
Num(Number1);
}
function EqualButton() { //等号
if(opvalue == '+') AddButton(0);
if(opvalue == '-') SubButton(0);
if(opvalue == '*') MultButton(0);
if(opvalue == '/') DivButton(0);
Number2 = "";
opvalue = "";
}
function keyDown()
{
var iCode=window.event.keyCode;
if(event.shiftKey)
{
switch(iCode)
{
case 56:document.all.multiply.click();break;
case 59:document.all.minus.click();break;
case 60:document.all.plus.click();break;
}
}
if(!event.shiftKey&&!event.ctrlKey&&!event.altKey) {
switch (iCode)
{
case 187:document.all.equal.click();break;
case 96:document.all.zero.click();break;
case 97:document.all.one.click();break;
case 98:document.all.two.click();break;
case 99:document.all.three.click();break;
case 100:document.all.four.click();break;
case 101:document.all.five.click();break;
case 102:document.all.six.click();break;
case 103:document.all.seven.click();break;
case 104:document.all.eight.click();break;
case 105:document.all.nine.click();break;
case 110:document.all.dot.click();break;
case 13:document.all.equal.click();break;
case 107:document.all.plus.click();break;
case 109:document.all.minus.click();break;
case 106:document.all.multiply.click();break;
case 111:document.all.divide.click();break;
case 48:document.all.zero.click();break;
case 49:document.all.one.click();break;
case 50:document.all.two.click();break;
case 51:document.all.three.click();break;
case 52:document.all.four.click();break;
case 53:document.all.five.click();break;
case 54:document.all.six.click();break;
case 55:document.all.seven.click();break;
case 56:document.all.eight.click();break;
case 57:document.all.nine.click();break;
case 190:document.all.dot.click();break;
case 13:document.all.equal.click();break;
case 191:document.all.divide.click();break;
}
}
}
window.document.attachEvent("onkeydown",keyDown)
js实现图片上传前的预览
js实现图片上传前的预览,实现完美兼容Firefox3,IE6,IE7,IE8和IE9的显示问题 1、脚本,把下面代码加到
与之间 Js代码 1.//接收运算符号 String oper=request.getParameter("op"); Double dnum1=0.0; Double dnum2=0.0; Double result=0.0; //java中String -> int if(num1!=null&&num2!=null&&oper!=null) { dnum1=Double.parseDouble(num1); dnum2=Double.parseDouble(num2); //计算 if(oper.equals("+")) { //加 result=dnum1+dnum2; } else if(oper.equals("-")) { //减 result=dnum1-dnum2; } else if(oper.equals("×")) { //乘 result=dnum1*dnum2; } else { //除 result=dnum1/dnum2; } } %>