RPN (Reverse Polish Notation) calculator Tool 2023

RPN calculator calculates even complicated terms without braces. This Reverse Polish Notation calculator uses postfix representations. It has many advantages over Algebraic notation.

 

Features

·        You can calculate even complicated terms without braces.

·        Used for postfix notations.

·        Provides easy accessibility to calculation.

·        Calculations can be performed by using both keyboard or mouse clicks.

·        When a number is entered, the previous entry is raised in the stack, so that several values can be stored.


Downloads

JavaScript Code

 


<!-- Script by hscripts.com -->
<!-- More scripts @www.hscripts.com -->
<script type="text/JavaScript">
vary lift = 0;
var line = "";
var x = 0;
var y = 0;
var z = 0;
var t = 0;
var arc = 0;
var mem1 = 0;
var mem2 = 0;
var mem3 = 0;
var degmode = 1;
var valpi = 3.14159265358979323846;
var degtorad = valpi / 180;
var radtodeg = 180 / valpi;
function convert()
{if (line != ""){ x = parseFloat(line); line = ""; }
}
function show()
{document.rpncalc.t.value = t;
document.rpncalc.z.value = z;document.rpncalc.y.value = y;
document.rpncalc.x.value = x;
}
function clearall()
{x = y = z = t = mem1 = mem2 = mem3 = 0;line = ""; show();
}
function clx()
{x = 0; line = ""; show(); lift = 0;
}
function clearreg()
{convert();
mem1 = 0; mem2 = 0; mem3 = 0; lift = 1;
}function exchange()
{convert(); var temp = x; x = y; y = temp; show(); lift = 1;
}
function rolldown()
{convert(); var temp = x; x = y; y = z; z = t; t = temp; show(); lift = 1;
}
function rollup()
{convert(); var temp = t; t = z; z = y; y = x; x = temp; show(); lift = 1;
}
function drop()
{y = z; z = t;
}function number1(digit)
{if (lift) enter();lift = 0; line += digit; document.rpncalc.x.value = line;
}
function enter()
{convert(); t = z; z = y; y = x; show();
}
function plus()
{convert(); x = x + y; drop(); show(); lift = 1;
}
function minus()
{convert(); x = y - x; drop(); show(); lift = 1;
}
function times()
{convert(); x = x * y; drop(); show(); lift = 1;
}
function divide()
{convert(); x = y / x; drop(); show(); lift = 1;
}
function squarert()
{convert(); x = Math.sqrt(x); show(); lift = 1;
}
function square()
{convert(); x = x * x; show(); lift = 1;
}
function pie()
{if (lift || (line != "")) enter();convert(); x = Math.PI; show(); lift = 1;
}
function sqrt()
{convert(); x = Math.sqrt(x); show(); lift = 1;
}
function setarc()
{arc = 1;
}
function sine()
{convert();if (arc) x = invtrig(Math.asin(x));else x = Math.sin(pretrig(x));show(); lift = 1; arc = 0;
}
function cosine()
{convert();if (arc) x = invtrig(Math.acos(x));else x = Math.cos(pretrig(x));if ( x < 6.124e-17 ) { x = 0; } // cos 90 = 0show(); lift = 1; arc = 0;
}
function tangent()
{convert();if (arc) x = invtrig(Math.atan(x));else x = Math.tan(pretrig(x));if ( x > 1633e13) { x = 1/0; } // tan 90 = Infinityshow(); lift = 1; arc = 0;
}
function natlog()
{convert(); x = Math.log(x); show(); lift = 1;
}
function expon()
{convert(); x = Math.exp(x); show(); lift = 1;
}
function power()
{convert(); x = Math.pow(y, x); drop(); show(); lift = 1;
}
function recip()
{convert(); x = 1 / x; show(); lift = 1;
}
function changes()
{convert(); x = -x; show(); lift = 1;
}
function store()
{convert();if (x == 1) mem1 = y;if (x == 2) mem2 = y;if (x == 3) mem3 = y;x = y; drop(); show(); lift = 1;
}
function storeadd()
{convert();if (x == 1) mem1 = mem1 + y;if (x == 2) mem2 = mem2 + y;if (x == 3) mem3 = mem3 + y;x = y; drop(); show(); lift = 1;
}
function storeminus()
{convert();if (x == 1) mem1 = mem1 - y;if (x == 2) mem2 = mem2 - y;if (x == 3) mem3 = mem3 - y;x = y; drop(); show(); lift = 1;
}
function recall()
{if (lift || (line != "")) enter();convert(); if (x == 3) x = mem3;if (x == 2) x = mem2;if (x == 1) x = mem1;drop(); show(); lift = 1;
}
function percent()
{convert(); x = x * y / 100; drop(); show(); lift = 1;
}
function clrstack()
{convert(); t = 0; z = 0; y = 0; x = 0; show(); lift = 1;
}
function fdegrad(x)
{degmode = x;
}
function pretrig(x)
{if(degmode) { x *= degtorad; }return(x);
}
function invtrig(x)
{if(degmode) { x *= radtodeg; }return(x);
}
function ffact()
{ convert(); var counter = x; var fct = counter;while(--counter > 0) { fct *= counter; }x = fct; show(); lift = 1;
}
function ctck()
{var sds = document.getElementById("dum");if(sds == null){alert("You are using a free package.\n You are not allowed to remove the tag.\n");}var sdss = document.getElementById("dumdiv");if(sdss == null){alert("You are using a free package.\n You are not allowed to remove the tag.\n");}
}
document.onload="ctck()";
</script>

<!-- Script by hscripts.com -->





HTML Code

 


<body onLoad = "clearall()">
<center><h2>Javascript RPN Scientific Calculator</h2>
<form name="rpncalc">
<table border=1 width="500px" bgcolor="#c3d9ff">
<tr><td colspan=5><table align=center bgcolor="#ffffcc"><tr><td>T : </td><td><input name="t" type="text" size="30" value="0"></td></tr><tr><td>Z : </td><td><input name="z" type="text" size="30" value="0"></td></tr><tr><td>Y : </td><td><input name="y" type="text" size="30" value="0"></td></tr><tr><td>X : </td><td><input name="x" type="text" size="30" value="0"></td></tr></table>
</td></tr>
<tr align="center"><td><input type="button" value="x !" onClick="ffact()"><td colspan="2"><input type="radio" checked name="degrad" onClick="fdegrad(1)">Degrees<td colspan="2"><input type="radio" name="degrad" onClick="fdegrad(0)">Radians
</tr>
<tr align="center"><td><input type="button" style="width:60px;" value="ln" onClick="natlog()"><td><input type="button" style="width:60px;" value="e^x" onClick="expon()"><td><input type="button" style="width:60px;" value="y^x" onClick="power()"><td><input type="button" style="width:60px;" value="1/x" onClick="recip()"><td><input type="button" style="width:60px;" value="%" onClick="percent()">
</tr>
<tr align="center"><td><input type="button" style="width:60px;" value="pi" onClick="pie()"><td><input type="button" style="width:60px;" value="arc" onClick="setarc()"><td><input type="button" style="width:60px;" value="sin" onClick="sine()"><td><input type="button" style="width:60px;" value="cos" onClick="cosine()"><td><input type="button" style="width:60px;" value="tan" onClick="tangent()">
</tr>
<tr align="center"><td><input type="button" style="width:60px;" value="rup" onClick="rollup()"><td><input type="button" style="width:60px;" value="chs" onClick="changes()"><td><input type="button" style="width:60px;" value="x<>y" onClick="exchange()"><td><input type="button" style="width:60px;" value="x^2" onClick="square()"><td><input type="button" style="width:60px;" value="sqrt" onClick="squarert()">
</tr>
<tr align="center">
<td><input type="button" style="width:60px;" value="rdn" onClick="rolldown()"><td><input type="button" style="width:60px;" value="clrg" onClick="clearreg()"><td><input type="button" style="width:60px;" value="clst" onClick="clrstack()"><td><input type="button" style="width:60px;" value="clx" onClick="clx()"><td><input type="button" style="width:60px;" value="enter" onClick="enter()">
</tr>
<tr align="center"><td><input type="button" style="width:60px;" value=" 7 " onClick="number1('7')"><td><input type="button" style="width:60px;" value=" 8 " onClick="number1('8')"><td><input type="button" style="width:60px;" value=" 9 " onClick="number1('9')"><td><input type="button" style="width:60px;" value=" + " onClick="plus()"><td><input type="button" style="width:60px;" value="sto+" onClick="storeadd()">
</tr>
<tr align="center"><td><input type="button" style="width:60px;" value=" 4 " onClick="number1('4')"><td><input type="button" style="width:60px;" value=" 5 " onClick="number1('5')"><td><input type="button" style="width:60px;" value=" 6 " onClick="number1('6')"><td><input type="button" style="width:60px;" value=" - " onClick="minus()"><td><input type="button" style="width:60px;" value="sto-" onClick="storeminus()">
</tr>
<tr align="center"><td><input type="button" style="width:60px;" value=" 1 " onClick="number1('1')"><td><input type="button" style="width:60px;" value=" 2 " onClick="number1('2')"><td><input type="button" style="width:60px;" value=" 3 " onClick="number1('3')"><td><input type="button" style="width:60px;" value=" * " onClick="times()"><td><input type="button" style="width:60px;" value="sto" onClick="store()">
</tr>
<tr align="center"><td><input type="button" style="width:60px;" value=" 0 " onClick="number1('0')"><td><input type="button" style="width:60px;" value=" . " onClick="number1 ('.')"><td><input type="button" style="width:60px;" value="eex" onClick="number1('e')"><td><input type="button" style="width:60px;" value=" / " onClick="divide()"><td><input type="button" style="width:60px;" value="rcl" onClick="recall()">
</tr>
<tr><td colspan=6 align=right><div style="font-size: 10px;color: #dadada;" id="dumdiv">
<a href="https://www.hscripts.com" id="dum" style="text-decoration:none;color: #dadada;">©h</a></div></td></tr>
</table>
</form>
</body>

 



·        Release Date – 25-03-2023

·        For customization of this script or any script development, mail to 

Usage

·        Copy and paste the JavaScript code into your HTML page and make use of this RPN (Reverse Polish Notation) calculator.

·        This script can be used for postfix representations.

·        This script can be used to solve complicated terms without braces.

Related Scripts

·        Sum Calculator Script

·        Pregnancy Calculator

·        Sample Mean and Covariance Calculator

·        World Population Counter

·        Javascript Check-Mode Calculator

 

Javascript RPN Scientific Calculator

T :
Z :
Y :
X :
DegreesRadians