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

View File

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

View File

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

View File

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