i'm coding a calculator by using html, css and javascript. majority of my buttons work except when i push a number, then push add, divide, minus or times, then try and push a number, the numbers do not want to work. im not to sure where i am going wrong. here is my javascript code
it has something to do with my input code i believe as the codes was working before the bit of the code was change around
function equivalentCheck() { //This allows the last value to remain in view until other buttons are pressed
if(parseInt(document.getElementById('equivalent').value)){
document.getElementById('equivalent') = 0;
document.getElementById('result').value = 0;
}
}
function input(x) {
equivalentCheck();
let y = parseFloat(document.getElementById('result').value);
if(document.getElementById('decimalVar').value == 0) {
x += y * 10; //Multiply the text input and add the value of x.
document.getElementById('result').value = x; //Return x to the text output
}
else {//If decimal is true
let decimalCount = parseInt(document.getElementById('decimalVar').value);
if(decimalCount == 1) {
x *= 1/10; //We are using math to place the decimal point.
y += x;
document.getElementById('result').value = y;
}
else {
document.getElementById('result').value += x;
}
decimalCount++;
document.getElementById('decimalVar').value = decimalCount;
}
}
function decimalPoint() {
if(document.getElementById('decimalVar').value == 0){//This Prevents Multiple Decimal
document.getElementById('decimalVar').value = 1;
}
if (parseInt(document.getElementById('operation').value)) {//If This Is An Empty String,It Wil Return False
document.getElementById('result').value = 0;
}
}
function operandCheck() {
if(document.getElementById('operand').value == ""){
document.getElementById('operand').value = document.getElementById('result').value;
document.getElementById('equivalent').value = 1;
} else {
operatorCheck();
}
}
function operatorCheck() {
let a = parseFloat(document.getElementById('operand').value);
let b = parseFloat(document.getElementById('result').value);
switch (parseInt(document.getElementById('operation').value)) {
case 1: //addition
a += b;
break;
case 2: //subraction
a -= b;
break;
case 3: //multiplcation
a *= b;
break;
case 4: //division
a /= b;
}
document.getElementById('operand').value = a;
document.getElementById('result').value = a;
document.getElementById('equivalent').value = 1;
}
function operators(x) {
switch(x) {
case 1:
document.getElementById('operation').value = 1;//Addition
break;
case 2:
document.getElementById('operation').value = 2;//Subtraction
break;
case 3:
document.getElementById('operation').value = 3; //Multiplcation
break;
case 4:
document.getElementById('operation').value = 4; //Division
break;
default:
}
operandCheck();
}
function equals() {
operators(parseInt(document.getElementById('operation').value));
document.getElementById('result').value = document.getElementById('operand').value;
document.getElementById('operand').value ="";
document.getElementById('equivalent').value = 1;
}
function allClear(){
document.getElementById('result').value = 0;
document.getElementById('operand').value = "";
document.getElementById('operation').value = 0;
document.getElementById('equivalent').value = 0;
}
function plusminus(){
let x = parseFloat(document.getElementById('result').value);
x *= -1;
document.getElementById('result').value = x;
}
function percent() {
let x = parseFloat(document.getElementById('result').value);
x *= 0.01;
document.getElementById('result').value = x;
}
function square() {
let x = parseFloat(document.getElementById('result').value);
x *= x;
document.getElementById('result').value = x;
}
i'm coding a calculator by using html, css and javascript. majority of my buttons work except when i push a number, then push add, divide, minus or times, then try and push a number, the numbers do not want to work. im not to sure where i am going wrong. here is my javascript code
it has something to do with my input code i believe as the codes was working before the bit of the code was change around
function equivalentCheck() { //This allows the last value to remain in view until other buttons are pressed
if(parseInt(document.getElementById('equivalent').value)){
document.getElementById('equivalent') = 0;
document.getElementById('result').value = 0;
}
}
function input(x) {
equivalentCheck();
let y = parseFloat(document.getElementById('result').value);
if(document.getElementById('decimalVar').value == 0) {
x += y * 10; //Multiply the text input and add the value of x.
document.getElementById('result').value = x; //Return x to the text output
}
else {//If decimal is true
let decimalCount = parseInt(document.getElementById('decimalVar').value);
if(decimalCount == 1) {
x *= 1/10; //We are using math to place the decimal point.
y += x;
document.getElementById('result').value = y;
}
else {
document.getElementById('result').value += x;
}
decimalCount++;
document.getElementById('decimalVar').value = decimalCount;
}
}
function decimalPoint() {
if(document.getElementById('decimalVar').value == 0){//This Prevents Multiple Decimal
document.getElementById('decimalVar').value = 1;
}
if (parseInt(document.getElementById('operation').value)) {//If This Is An Empty String,It Wil Return False
document.getElementById('result').value = 0;
}
}
function operandCheck() {
if(document.getElementById('operand').value == ""){
document.getElementById('operand').value = document.getElementById('result').value;
document.getElementById('equivalent').value = 1;
} else {
operatorCheck();
}
}
function operatorCheck() {
let a = parseFloat(document.getElementById('operand').value);
let b = parseFloat(document.getElementById('result').value);
switch (parseInt(document.getElementById('operation').value)) {
case 1: //addition
a += b;
break;
case 2: //subraction
a -= b;
break;
case 3: //multiplcation
a *= b;
break;
case 4: //division
a /= b;
}
document.getElementById('operand').value = a;
document.getElementById('result').value = a;
document.getElementById('equivalent').value = 1;
}
function operators(x) {
switch(x) {
case 1:
document.getElementById('operation').value = 1;//Addition
break;
case 2:
document.getElementById('operation').value = 2;//Subtraction
break;
case 3:
document.getElementById('operation').value = 3; //Multiplcation
break;
case 4:
document.getElementById('operation').value = 4; //Division
break;
default:
}
operandCheck();
}
function equals() {
operators(parseInt(document.getElementById('operation').value));
document.getElementById('result').value = document.getElementById('operand').value;
document.getElementById('operand').value ="";
document.getElementById('equivalent').value = 1;
}
function allClear(){
document.getElementById('result').value = 0;
document.getElementById('operand').value = "";
document.getElementById('operation').value = 0;
document.getElementById('equivalent').value = 0;
}
function plusminus(){
let x = parseFloat(document.getElementById('result').value);
x *= -1;
document.getElementById('result').value = x;
}
function percent() {
let x = parseFloat(document.getElementById('result').value);
x *= 0.01;
document.getElementById('result').value = x;
}
function square() {
let x = parseFloat(document.getElementById('result').value);
x *= x;
document.getElementById('result').value = x;
}
Share
Improve this question
asked Mar 20 at 21:01
V. M. EntV. M. Ent
91 bronze badge
4
|
1 Answer
Reset to default 0I think the problem is with your equivalentCheck function. You are assigning 0 to equivalent rather than assigning 0 to the value of equivalent, change like this:
function equivalentCheck() {
if(parseInt(document.getElementById('equivalent').value)){
document.getElementById('equivalent').value = 0;
document.getElementById('result').value = 0;
}
}
valueAsNumber
instead ofvalue
? – evolutionxbox Commented Mar 20 at 21:32