Added dot button
This commit is contained in:
parent
d015f8d511
commit
f01cebd2c1
14
calc.php
14
calc.php
@ -10,19 +10,19 @@
|
||||
$oper=getData('oper');
|
||||
$number2=getData('number2');
|
||||
if ($oper=="+") {
|
||||
$res=['rcode'=>'1','result'=>(int)$number1+(int)$number2];
|
||||
$res=['rcode'=>'1','result'=>(float)$number1+(float)$number2];
|
||||
} else if ($oper == "-") {
|
||||
$res=['rcode'=>'1','result'=>(int)$number1-(int)$number2];
|
||||
$res=['rcode'=>'1','result'=>(float)$number1-(float)$number2];
|
||||
} else if ($oper=="*") {
|
||||
$res=['rcode'=>'1','result'=>(int)$number1*(int)$number2];
|
||||
$res=['rcode'=>'1','result'=>(float)$number1*(float)$number2];
|
||||
} else if ($oper=="/") {
|
||||
if ((int)$number2 == 0) {
|
||||
$res=['rcode'=>'0','result'=>"division by zero"];
|
||||
if ((float)$number2 == 0) {
|
||||
$res=['rcode'=>'0','result'=>"Division by zero!"];
|
||||
} else {
|
||||
$res=['rcode'=>'1','result'=>(int)$number1/(int)$number2];
|
||||
$res=['rcode'=>'1','result'=>(float)$number1/(float)$number2];
|
||||
}
|
||||
} else {
|
||||
$res=['rcode'=>'0','result'=>"unknown operation"];
|
||||
$res=['rcode'=>'0','result'=>"Unknown operation!"];
|
||||
}
|
||||
$data=$res;
|
||||
header('Content-type: application/json');
|
||||
|
||||
17
index.php
17
index.php
@ -25,12 +25,17 @@
|
||||
<body>
|
||||
<div class="calc">
|
||||
<div id="prompt">0</div>
|
||||
<div class="row">
|
||||
<?php
|
||||
createButton("AC",'clr',"clr()","Clear");
|
||||
?>
|
||||
</div>
|
||||
<div class="row">
|
||||
<?php
|
||||
for ($i=1;$i<=3;$i++) {
|
||||
createButton($i,'dig',"numb('".$i."')",$i);
|
||||
}
|
||||
createButton("+",'oper',"oper('+')","Сложение");
|
||||
createButton("+",'oper',"oper('+')","Add");
|
||||
?>
|
||||
</div>
|
||||
<div class="row">
|
||||
@ -38,7 +43,7 @@
|
||||
for ($i=4;$i<=6;$i++) {
|
||||
createButton($i,'dig',"numb('".$i."')",$i);
|
||||
}
|
||||
createButton("-",'oper',"oper('-')","Вычитание");
|
||||
createButton("-",'oper',"oper('-')","Substract");
|
||||
?>
|
||||
</div>
|
||||
<div class="row">
|
||||
@ -46,15 +51,15 @@
|
||||
for ($i=7;$i<=9;$i++) {
|
||||
createButton($i,'dig',"numb('".$i."')",$i);
|
||||
}
|
||||
createButton("*",'oper',"oper('*')","Умножение");
|
||||
createButton("*",'oper',"oper('*')","Multiply");
|
||||
?>
|
||||
</div>
|
||||
<div class="row">
|
||||
<?php
|
||||
createButton("AC",'clr',"clr()","Очистить");
|
||||
createButton("0",'dig',"numb('0')",0);
|
||||
createButton("=",'oper enter',"calc()","Считать");
|
||||
createButton("/",'oper',"oper('/')","Деление");
|
||||
createButton(".",'oper',"numb('.')",'Dot');
|
||||
createButton("=",'oper enter',"calc()","Calculate");
|
||||
createButton("/",'oper',"oper('/')","Divide");
|
||||
?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
52
script.js
52
script.js
@ -2,11 +2,11 @@ var p1='0';
|
||||
var tp='';
|
||||
var p2='0';
|
||||
var sol='0';
|
||||
var pmt='0';
|
||||
var out='0';
|
||||
var allow=true;
|
||||
function calc() {
|
||||
pmt+='=';
|
||||
document.getElementById('prompt').innerHTML=pmt;
|
||||
out+='=';
|
||||
document.getElementById('prompt').innerHTML=out;
|
||||
var number1=p1;
|
||||
var oper=tp;
|
||||
var number2=p2;
|
||||
@ -18,11 +18,19 @@ function calc() {
|
||||
success: function(response) {
|
||||
if (response.rcode=="0") {
|
||||
alert(response.result)
|
||||
cle()
|
||||
clr()
|
||||
} else {
|
||||
sol=response.result;
|
||||
pmt+=sol;
|
||||
document.getElementById('prompt').innerHTML=pmt;
|
||||
sol=response.result.toString()
|
||||
if ((out+sol).length>14) {
|
||||
if (sol.includes('.')) {sol=sol.substr(0,14-out.length);
|
||||
} else {
|
||||
alert('Too large number to display!');
|
||||
clr()
|
||||
return;
|
||||
}
|
||||
}
|
||||
out+=sol;
|
||||
document.getElementById('prompt').innerHTML=out;
|
||||
allow=false;
|
||||
p1='0';
|
||||
tp='';
|
||||
@ -32,44 +40,48 @@ function calc() {
|
||||
});
|
||||
}
|
||||
function numb(num) {
|
||||
if (Number(p1)==0 && (tp=='')) {
|
||||
if (num=='.') {
|
||||
if (tp=='') {p1+='.';} else {p2+='.';}
|
||||
out+='.';
|
||||
document.getElementById('prompt').innerHTML=out;
|
||||
} else if (Number(p1)==0 && (tp=='')) {
|
||||
p1=num;
|
||||
pmt=String(p1);
|
||||
document.getElementById('prompt').innerHTML=pmt;
|
||||
out=String(p1);
|
||||
document.getElementById('prompt').innerHTML=out;
|
||||
} else if ((Number(p1)>0) && (tp=='')) {
|
||||
p1+=num;
|
||||
pmt=String(p1);
|
||||
document.getElementById('prompt').innerHTML=pmt;
|
||||
out=String(p1);
|
||||
document.getElementById('prompt').innerHTML=out;
|
||||
} else if (Number(p2)==0 && tp!='') {
|
||||
p2=num;
|
||||
pmt=String(p1)+tp+String(p2);
|
||||
document.getElementById('prompt').innerHTML=pmt;
|
||||
out=String(p1)+tp+String(p2);
|
||||
document.getElementById('prompt').innerHTML=out;
|
||||
} else if (Number(p2)>0 && tp!='') {
|
||||
p2+=num;
|
||||
pmt=String(p1)+tp+String(p2);
|
||||
document.getElementById('prompt').innerHTML=pmt;
|
||||
out=String(p1)+tp+String(p2);
|
||||
document.getElementById('prompt').innerHTML=out;
|
||||
}
|
||||
}
|
||||
function oper(op) {
|
||||
if (tp!='') {alert('За раз можно использовать только одну операцию!');return;}
|
||||
if (!allow) {
|
||||
p1=Number(sol);
|
||||
pmt=sol;
|
||||
out=sol;
|
||||
allow=true;
|
||||
}
|
||||
// if (p1=='0' && p2=='0' && tp=='' && Number(document.getElementById('prompt').value)>0) {
|
||||
// p1=document.getElementById('prompt').innerHTML
|
||||
// }
|
||||
tp=op;
|
||||
pmt+=tp;
|
||||
document.getElementById('prompt').innerHTML=pmt;
|
||||
out+=tp;
|
||||
document.getElementById('prompt').innerHTML=out;
|
||||
}
|
||||
function clr() {
|
||||
p1='0';
|
||||
tp='';
|
||||
p2='0';
|
||||
sol='0';
|
||||
pmt='0';
|
||||
out='0';
|
||||
allow=true;
|
||||
numb(0);
|
||||
}
|
||||
@ -49,8 +49,8 @@ body{
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
width: 20%;
|
||||
height: 12vh;
|
||||
width: 15vh;
|
||||
height: 11vh;
|
||||
margin-bottom: 2px;
|
||||
border: 0;
|
||||
border-radius: 10px;
|
||||
@ -69,5 +69,6 @@ body{
|
||||
background: #f9b54c;
|
||||
}
|
||||
.btn.clr{
|
||||
width: 100%;
|
||||
background: #fd8469;
|
||||
}
|
||||
Reference in New Issue
Block a user