Сорри не знал как сделать работающий код))
Как работает эта функция, в чем ее смысл?
function getValue(value){
var res = parseInt(document.getElementById(value).value);
if (res == res)
return res;
По поводу нуля и минуса, я вот что имел ввиду, сейчас вставлю работающий код, сделайте любое вычитание и Вы меня поймете))
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Calculator</title>
</head>
<link rel="stylesheet" type="text/css" href="main.css">
<body>
<from id="calculator">
<table>
<tr>
<td>
<div align="center">
<input id="screen" type="text" value="" size="16" class="display" readonly="readonly" />
</div>
</td>
</tr>
<tr>
<td class="buttons">
<div align="center">
<input type="button" value="1" onclick="addInput(1)"/>
<input type="button" value="2" onclick="addInput(2)"/>
<input type="button" value="3" onclick="addInput(3)" />
<input type="button" value="+" class="operator" onclick="add()" />
</div>
<div align="center">
<input type="button" value="4" onclick="addInput(4)" />
<input type="button" value="5" onclick="addInput(5)" />
<input type="button" value="6" onclick="addInput(6)" />
<input type="button" value=" - " onclick="sub()" class="operator" />
</div>
<input type="button" value="7" onclick="addInput(7)" />
<input type="button" value="8" onclick="addInput(8)" />
<input type="button" value="9" onclick="addInput(9)" />
<input type="button" value=" * " onclick="mult()" class="operator" />
<div align="center">
<input type="button" value=" c " onclick="clr()" class="clear" />
<input type="button" value="0" onclick="addInput(0)" />
<input type="button" value=" = " onclick="calculate()" class="eval" />
<input type="button" value=" / " onclick="div()" class="operator" />
</div>
</td>
</tr>
</table>
</from>
</body>
<script>
"use strict";
var a,b,c;
var operator;
function getValue(value){
var res = parseInt(document.getElementById(value).value);
if (res == res)
return res;
}
//function getValue(value) {
// var res = document.getElementById(value).value - "";
// if (!isNaN(res))
// return res;
//}
function addInput(val) {
document.getElementById("screen").value = document.getElementById("screen").value + val;
}
function add () {
a = getValue("screen");
document.getElementById("screen").value = "+";
operator = "+";
}
function sub() {
a = getValue("screen");
document.getElementById("screen").value = "-";
operator = "-";
}
function mult() {
a = getValue("screen");
document.getElementById("screen").value = "*";
operator = "*";
}
function div() {
a = getValue("screen");
document.getElementById("screen").value = "/";
operator = "/";
}
function clr() {
document.getElementById("screen").value = "";
}
function calculate() {
b = getValue("screen");
switch(operator) {
case "+":
c = a + b;
break;
case "-":
c = a - b;
break;
case "*":
c = a * b;
break;
case "/":
if (b == 0) {
alert('Division durch Null kann nicht sein!');
}
else {
c = a / b;
}
break;
}
document.getElementById("screen").value = c;
}
</script>
</html>
Я хочу, чтобы в промежуточном значении, отображался оператор, если я так делаю как в примере выше, то получается косяк с минусом.
Можно ли как то этот минус на минус исправить? или уже ничего не поделаешь?