diff --git a/calc.php b/calc.php index a0713ea..50b1077 100644 --- a/calc.php +++ b/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'); diff --git a/index.php b/index.php index 175f8d7..44f63b0 100644 --- a/index.php +++ b/index.php @@ -26,36 +26,41 @@
0
- +
- +
- +
- + +
+
+
diff --git a/script.js b/script.js index e50af9e..2913a12 100644 --- a/script.js +++ b/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); } \ No newline at end of file diff --git a/style.css b/style.css index d55697e..8d66e83 100644 --- a/style.css +++ b/style.css @@ -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; } \ No newline at end of file