Added dot button

This commit is contained in:
Masahiko AMANO 2020-09-26 15:50:04 +03:00
parent d015f8d511
commit f01cebd2c1
4 changed files with 71 additions and 53 deletions

View File

@ -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');

View File

@ -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>

View File

@ -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);
}

View File

@ -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;
}