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