calculate.js 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. $(document).ready(function() {
  2. var displayBox = document.getElementById("display");
  3. var hasEvaluated = false;
  4. //CHECK IF 0 IS PRESENT. IF IT IS, OVERRIDE IT, ELSE APPEND VALUE TO DISPLAY
  5. function clickNumbers(val) {
  6. if (displayBox.innerHTML === "0" || (hasEvaluated == true && !isNaN(displayBox.innerHTML))) {
  7. displayBox.innerHTML = val;
  8. } else {
  9. displayBox.innerHTML += val;
  10. }
  11. hasEvaluated = false;
  12. }
  13. //PLUS MINUS
  14. $("#plus_minus").click(function() {
  15. if (eval(displayBox.innerHTML) > 0) {
  16. displayBox.innerHTML = "-" + displayBox.innerHTML;
  17. } else {
  18. displayBox.innerHTML = displayBox.innerHTML.replace("-", "");
  19. }
  20. });
  21. //ON CLICK ON NUMBERS
  22. $("#calu-w3ls").click(function() {
  23. displayBox.innerHTML = "0";
  24. $("#display").css("font-size", "4.286rem");
  25. // $("#display").css("margin-top", "110px");
  26. $("button").prop("disabled", false);
  27. });
  28. $("#one").click(function() {
  29. checkLength(displayBox.innerHTML);
  30. clickNumbers(1);
  31. });
  32. $("#two").click(function() {
  33. checkLength(displayBox.innerHTML);
  34. clickNumbers(2);
  35. });
  36. $("#three").click(function() {
  37. checkLength(displayBox.innerHTML);
  38. clickNumbers(3);
  39. });
  40. $("#four").click(function() {
  41. checkLength(displayBox.innerHTML);
  42. clickNumbers(4);
  43. });
  44. $("#five").click(function() {
  45. checkLength(displayBox.innerHTML);
  46. clickNumbers(5);
  47. });
  48. $("#six").click(function() {
  49. checkLength(displayBox.innerHTML);
  50. clickNumbers(6);
  51. });
  52. $("#seven").click(function() {
  53. checkLength(displayBox.innerHTML);
  54. clickNumbers(7);
  55. });
  56. $("#eight").click(function() {
  57. checkLength(displayBox.innerHTML);
  58. clickNumbers(8);
  59. });
  60. $("#nine").click(function() {
  61. checkLength(displayBox.innerHTML);
  62. clickNumbers(9);
  63. });
  64. $("#zero").click(function() {
  65. checkLength(displayBox.innerHTML);
  66. clickNumbers(0);
  67. });
  68. $("#decimal").click(function() {
  69. if (displayBox.innerHTML.indexOf(".") === -1 ||
  70. (displayBox.innerHTML.indexOf(".") !== -1 && displayBox.innerHTML.indexOf("+") !== -1) ||
  71. (displayBox.innerHTML.indexOf(".") !== -1 && displayBox.innerHTML.indexOf("-") !== -1) ||
  72. (displayBox.innerHTML.indexOf(".") !== -1 && displayBox.innerHTML.indexOf("×") !== -1) ||
  73. (displayBox.innerHTML.indexOf(".") !== -1 && displayBox.innerHTML.indexOf("÷") !== -1)) {
  74. clickNumbers(".");
  75. }
  76. });
  77. //OPERATORS
  78. $("#add").click(function() {
  79. evaluate();
  80. checkLength(displayBox.innerHTML);
  81. displayBox.innerHTML += "+";
  82. });
  83. $("#subtract").click(function() {
  84. evaluate();
  85. checkLength(displayBox.innerHTML);
  86. displayBox.innerHTML += "-";
  87. });
  88. $("#multiply").click(function() {
  89. evaluate();
  90. checkLength(displayBox.innerHTML);
  91. displayBox.innerHTML += "×";
  92. });
  93. $("#divide").click(function() {
  94. evaluate();
  95. checkLength(displayBox.innerHTML);
  96. displayBox.innerHTML += "÷";
  97. });
  98. $("#square").click(function() {
  99. var num = Number(displayBox.innerHTML);
  100. num = num * num;
  101. checkLength(num);
  102. displayBox.innerHTML = num;
  103. });
  104. $("#sqrt").click(function() {
  105. var num = parseFloat(displayBox.innerHTML);
  106. num = Math.sqrt(num);
  107. displayBox.innerHTML = Number(num.toFixed(5));
  108. });
  109. $('#equals').click(function() {
  110. evaluate();
  111. hasEvaluated = true;
  112. });
  113. //EVAL FUNCTION
  114. function evaluate() {
  115. displayBox.innerHTML = displayBox.innerHTML.replace(",", "");
  116. displayBox.innerHTML = displayBox.innerHTML.replace("×", "*");
  117. displayBox.innerHTML = displayBox.innerHTML.replace("÷", "/");
  118. if (displayBox.innerHTML.indexOf("/0") !== -1) {
  119. $("#display").css("font-size", "60px");
  120. // $("#display").css("margin-top", "124px");
  121. $("button").prop("disabled", false);
  122. $(".calu-w3ls").attr("disabled", false);
  123. displayBox.innerHTML = "Undefined";
  124. }
  125. var evaluate = eval(displayBox.innerHTML);
  126. if (evaluate.toString().indexOf(".") !== -1) {
  127. evaluate = evaluate.toFixed(5);
  128. }
  129. checkLength(evaluate);
  130. displayBox.innerHTML = evaluate;
  131. }
  132. //CHECK FOR LENGTH & DISABLING BUTTONS
  133. function checkLength(num) {
  134. if (num.toString().length > 7 && num.toString().length < 14) {
  135. $("#display").css("font-size", "60px");
  136. // $("#display").css("margin-top", "174px");
  137. } else if (num.toString().length > 16) {
  138. num = "Infinity";
  139. $("button").prop("disabled", true);
  140. $(".calu-w3ls").attr("disabled", false);
  141. }
  142. }
  143. //TRIM IF NECESSARY
  144. function trimIfNecessary() {
  145. var length = displayBox.innerHTML.length;
  146. if (length > 7 && length < 14) {
  147. $("#display").css("font-size", "60px");
  148. // $("#display").css("margin-top", "174px");
  149. } else if (length > 14) {
  150. displayBox.innerHTML = "Infinity";
  151. $("button").prop("disabled", true);
  152. $(".calu-w3ls").attr("disabled", false);
  153. }
  154. }
  155. });