DEV Community

Paul Lefebvre
Paul Lefebvre

Posted on

5 1

Pi Day: Estimating the value of Pi

It's Pi day (March 14) and one question you may be wondering is “how is Pi calculated?”

Measuring circles can give a rough estimate, but an infinite series is perhaps a better and more common way to do it. As described on Calculating Pi at MathCareers.org.uk, the Nilakantha Series works pretty well. Its formula looks like this:

Nilakantha Series: π = 3 + 4 / (2×3×4) − 4 / (4×5×6) + 4 / (6×7×8) − 4 / (8×9×10) + …

You ought to be able to figure out a pattern from that. And it’s a short leap to convert that to Xojo code. Here’s code that calculates Pi using the Nilakantha Series:

Dim even As Boolean = True
Dim calc As Double
Dim calcStart As Int64

Dim iterations As Integer
While iterations < 1000
  iterations = iterations + 1
  calcStart = calcStart + 2
  calc = 4.0 / (calcStart * (calcStart + 1) * (calcStart + 2))

  If even Then
    Pi = Pi + calc
  Else
    Pi = Pi - calc
  End If

  even = Not even
Wend
Enter fullscreen mode Exit fullscreen mode

Here’s a completed project you can run in Xojo: CalcPi Project

The above code correctly calculated the first 9 digits of Pi almost immediately. Unfortunately, calculating more digits of Pi is not really practical using the standard double-precision floating point data type used in most programming languages.

Sentry image

Hands-on debugging session: instrument, monitor, and fix

Join Lazar for a hands-on session where you’ll build it, break it, debug it, and fix it. You’ll set up Sentry, track errors, use Session Replay and Tracing, and leverage some good ol’ AI to find and fix issues fast.

RSVP here →

Top comments (1)

Collapse
 
dkassen profile image
Daniel Kassen

Paul your posts are awesome. Keep ‘em coming!

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs