Skip to content

Instantly share code, notes, and snippets.

@sayham-sjb
Last active March 8, 2018 20:50
Show Gist options
  • Save sayham-sjb/6494438bc646c58c19162b19c6e91051 to your computer and use it in GitHub Desktop.
Save sayham-sjb/6494438bc646c58c19162b19c6e91051 to your computer and use it in GitHub Desktop.
JavaScriptBasicCalculator #VS #js
var accumulator = 0.0;
var lstEntr = 0.0;
var deciPnt = 0;
var sign = 1;
var lstKey = "equals";
var clcTsk = "equals";
function Adddigit(digit) {
var temp;
if (lstKey != "digit") {
document.bscClcJs.bscClcRslt.value = 0.0;
if (lstKey == "equals") {
accumulator = 0.0;
clcTsk = "equals";
}
}
temp = parseFloat(document.bscClcJs.bscClcRslt.value);
if (deciPnt == 0)
document.bscClcJs.bscClcRslt.value = temp * 10 + parseInt(digit) * sign;
else {
document.bscClcJs.bscClcRslt.value = temp + parseInt(digit) / deciPnt * sign;
deciPnt = deciPnt * 10;
}
lstEntr = parseFloat(document.bscClcJs.bscClcRslt.value);
lstKey = "digit";
}
function clcInput(frmClcltr) {
switch (clcTsk) {
case "equals":
{
accumulator = parseFloat(document.bscClcJs.bscClcRslt.value);
break;
}
case "add":
{
accumulator = accumulator + lstEntr;
document.bscClcJs.bscClcRslt.value = accumulator;
break;
}
case "subtract":
{
accumulator = accumulator - lstEntr;
document.bscClcJs.bscClcRslt.value = accumulator;
break;
}
case "multiply":
{
accumulator = accumulator * lstEntr;
document.bscClcJs.bscClcRslt.value = accumulator;
break;
}
case "divide":
{
accumulator = accumulator / lstEntr;
document.bscClcJs.bscClcRslt.value = accumulator;
break;
}
}
if (lstKey != "equals") clcTsk = lstKey;
}
function Add(frmClcltr) {
deciPnt = 0;
sign = 1;
lstEntr = parseFloat(document.bscClcJs.bscClcRslt.value);
if (lstKey == "digit") {
lstKey = "add";
clcInput(frmClcltr);
} else {
lstKey = "add";
clcTsk = "add";
}
}
function Subtract(frmClcltr) {
deciPnt = 0;
sign = 1;
lstEntr = parseFloat(document.bscClcJs.bscClcRslt.value);
if (lstKey == "digit") {
lstKey = "subtract";
clcInput(frmClcltr);
} else {
lstKey = "subtract";
clcTsk = "subtract";
}
}
function Multiply(frmClcltr) {
deciPnt = 0;
sign = 1;
lstEntr = parseFloat(document.bscClcJs.bscClcRslt.value);
if (lstKey == "digit") {
lstKey = "multiply";
clcInput(frmClcltr);
} else {
lstKey = "multiply";
clcTsk = "multiply";
}
}
function Divide(frmClcltr) {
deciPnt = 0;
sign = 1;
lstEntr = parseFloat(document.bscClcJs.bscClcRslt.value);
if (lstKey == "digit") {
lstKey = "divide";
clcInput(frmClcltr);
} else {
lstKey = "divide";
clcTsk = "divide";
}
}
function Equals(frmClcltr) {
deciPnt = 0;
sign = 1;
if ((lstKey == "add") || (lstKey == "subtract") ||
(lstKey == "multiply") || (lstKey == "divide"))
clcTsk = lstKey;
lstKey = "equals";
clcInput(frmClcltr);
}
function SetDeciPnt() {
deciPnt = 10;
}
function Squareroot(frmClcltr) {
deciPnt = 0;
sign = 1;
lstKey = "equals";
temp = parseFloat(document.bscClcJs.bscClcRslt.value);
document.bscClcJs.bscClcRslt.value = Math.sqrt(temp);
lstEntr = parseFloat(document.bscClcJs.bscClcRslt.value);
}
function Percent(frmClcltr) {
deciPnt = 0;
sign = 1;
lstKey = "equals";
document.bscClcJs.bscClcRslt.value = (lstEntr / 100) * accumulator;
lstEntr = parseFloat(document.bscClcJs.bscClcRslt.value);
}
function ChngeSign(frmClcltr) {
sign = sign * -1;
temp = parseFloat(document.bscClcJs.bscClcRslt.value);
document.bscClcJs.bscClcRslt.value = temp * -1;
lstEntr = parseFloat(document.bscClcJs.bscClcRslt.value);
}
function Invert(frmClcltr) {
deciPnt = 0;
sign = 1;
lstKey = "equals";
temp = parseFloat(document.bscClcJs.bscClcRslt.value);
document.bscClcJs.bscClcRslt.value = 1 / temp;
lstEntr = parseFloat(document.bscClcJs.bscClcRslt.value);
}
function Initialize(frmClcltr) {
accumulator = 0.0;
lstEntr = 0.0;
deciPnt = 0;
sign = 1;
lstKey = "equals";
clcTsk = "equals";
document.bscClcJs.bscClcRslt.value = 0.0;
document.bscClcJs.bscClcRslt.focus();
}
function ClearEntry(frmClcltr) {
lstEntr = 0.0;
deciPnt = 0;
sign = 1;
document.bscClcJs.bscClcRslt.value = 0.0;
document.bscClcJs.bscClcRslt.focus();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment