PI routines

new topic     » goto parent     » topic index » view thread      » older message » newer message

James Powell writes:
>    However, there is a *minor* bug in the Euphoria version that I
> cannot quite figure out.  It seems that it does not want to properly
> calculate the last two (2 :) ) digits of PI.  ie, when calculating to 50
> digits,  PI.EX responds with:
> 3.141592653589793238462643383279502884197169399374
> but PI.BAS returns:
> 3.1415926535897932384626433832795028841971693993751

In the Basic version you say "OPTION BASE 0"
(which is the default anyway I believe). This means
that when the user asks for 50 digits, you calculate
using an array dimensioned from 0 to 50, i.e. *51*
digits. At the end you only print from 0 to 49, so
only 50 digits are displayed. The 51st digit which
may not be very accurate, is not displayed.
In the Euphoria version you calculate PI with a sequence
that is indexed from *1* to 50, i.e. only 50 digits.
You then print elements 1 to 49, i.e. only 49 digits. You'll
notice above that the Euphoria output has one less
digit displayed.

If you add 1 to the number of digits requested by
the Euphoria user, the Euphoria and QBasic programs
will have identical results.

Thanks for the interesting benchmark.

   Rob Craig
   Rapid Deployment Software

new topic     » goto parent     » topic index » view thread      » older message » newer message

Search



Quick Links

User menu

Not signed in.

Misc Menu