# COMMUNITY : FORUMS : TECH

## Calculating Pi using simple JavaScript

One day I was bored and wanted to calculate Pi for myself. After finding out the Leibniz formula for Pi. When it is solved for Pi one gets:
Pi=4/1-4/3+4/5-4/7...
And so on since it's an infinite series. Since one can see a pattern that can easily be defined I concluded that a simple program using a loop could be made. I decided on using JavaScript for its ease of use and use a for loop. The program I made at first was mainly:

var Pi=0;
var n=1;
for (i=0;i<=1000;i++)
{
Pi=Pi+(4/n)
n=n+2
Pi=Pi-(4/n)
n=n+2
}

Where the variable "Pi" is the value of Pi, "i" is the number of times the loop is repeated, and "n" is just a variable to help in the formula. This I however found could further simplified to:

var Pi=0;
var n=1;
for (i=0;i<=1000;i++)
{
Pi=Pi+(4/n)-(4/(n+2))
n=n+4
}

Of course the more times the loop is repeated, the more accurate your value of Pi gets, and while 1000 may seem like a large number, the value of Pi which it calculated is wrong after the 3rd decimal point. I've had it repeat over 100,000 times and it gets more accurate, however, remember that making the number of repeats can slow down and even crash your browser (I speak from experience). If you want some ready made scripting, then here's some scripting I've made which lets you easily control the amount of loop repeats. It is based as an HTML document:

<html>
<body>
<input type="button" onclick="Calculate()" value="Calculate Pi" />
<script type="text/javascript">
var c=0;
function Calculate()
{
var c=prompt("Enter number of cycles:","0");
if (c>0)
{
var Pi=0;
var n=1;
for (i=0;i<=c;i++)
{
Pi=Pi+(4/n)-(4/(n+2))
n=n+4
}
}
else
{
alert("Canceled or Error in input: Input must be positive.");
}
}
</script>
</body>
</html>

sort by: active | newest | oldest
katz_t3 years ago

Further simplified to:
(function(Pi,n){
Pi+=(4/n)-(4/(n+2));
n+=4;
arguments.callee(Pi,n)
})(0,1)

httptomas@gmail.com

StarscreamClone3 years ago

Interesting... I'll have to try this sometime.

ruhanhabib393 years ago

NachoMahma6 years ago
.  Neat "trick". There's an extra set of braces in the code (after var c=prompt...), but that won't hurt anything.
6 years ago
Ha, I just read this comment and the one below and...combed the code for the extra braces. xD
Masterdude (author)  NachoMahma6 years ago
Thanks and I changed it.
lemonie6 years ago

You are aware that the Leibniz formula for Pi converges rather slowly aren't you?
http://en.wikipedia.org/wiki/Leibniz_formula_for_pi

L
Masterdude (author)  lemonie6 years ago
I know. I didn't make it to make it for serious calculation of Pi but just as a simple project so it doesn't make much of a difference.
6 years ago
I didn't know whether you were aware of the things that people have done to address accuracy with fewer terms - I found it interesting myself.

L