var grid = document.getElementsByClassName("grid")[0],
display = document.getElementById("display"),
zero = [],
i = 0,
isNew = true;
grid.onclick = function (e) {
if (e.target.className == "button number") numberEnter(e.target.innerHTML);
if (e.target.className == "button op") calculateValues(e.target.innerHTML);
if (e.target.className == "button point") decimalPoint();
if (e.target.className == "button clear") clearMemory();
if (e.target.className == "button m1") clearSymbol();
}
function numberEnter (val) {
if (isNew) {
isNew = false;
display.value = val;
if (display.value == "0") display.value = val;
}
else display.value += val;
}
function calculateValues (op) {
zero[i++] = parseFloat(display.value);
zero[i++] = op;
isNew = true;
if (zero.length >= 3) {
var a = zero[0];
var op = zero[1];
var b = zero[2];
zero[0] = calculate(a, op, b);
zero[1] = zero[3];
i = 2;
display.value = zero[0];
}
}
function calculate (a, op, b) {
if (op === "+") return a + b;
if (op === "-") return a - b;
if (op === "*") return a * b;
if (op === "/") return a / b;
if (op === "=") return b;
}
function decimalPoint () {
if (isNew) display.value = "0.";
if (display.value.indexOf(".") == -1) display.value += ".";
}
function clearMemory () {
zero.length = 0;
i = 0;
isNew = true;
begin = true;
display.value = "0";
}
function clearSymbol () {
var arr = display.value.split("");
arr.pop();
display.value = arr.join("");
}
здравствуйте! пишу калькулятор на js. возникла проблема. когда получается отрицательный результат, например минус два, выводится не “-2”, а “2-”. такая же проблема и с плавающей точкой. например, я хочу ввести число “1.1”. после “1” ввожу точку и получается не “1.”, а “.1”. но когда я продолжаю вводить, становится все нормально.
подскажите. в чем проблема? буду благодарен