Extension:BCmath

From mediawiki.org
This page is a translated version of the page Extension:BCmath and the translation is 92% complete.
Outdated translations are marked like this.
Manual for MediaWiki-utvidelser
BCmath
Utgivelsesstatus: eksperimentell
Implementasjon API
Beskrivelse Tilbyr aritmetikk med vilkårlig presisjon for Scribunto.
Forfatter(e)
  • John Erling Blad (Jebladdiskusjon)
Siste versjon 0.1.0
Kompatibilitetsregler Master maintains backward compatibility.
MediaWiki >= 1.33
Databaseendringer Nei
Composer jeblad/bcmath
Lisens GNU General Public License 2.0 eller senere
Last ned
README, LDoc
  • $wgExtFiltering
Translate the BCmath extension

BCmath tilbyr aritmetikk med vilkårlig presisjon for Lua moduler. Med biblioteket fra denne utvidelsen så er det fullstendig gyldig å gjøre beregninger med 𝜋 <! - matematisk kursiv liten pi -> på 125 tegn, 𝜋 ≅ 3,141 592 653 589 793 238 462 643 383 279 502 884 197 169 399 375 105 820 974 944 592 307 816 406 286 208 998 628 034 825 342 117 067 982 148 086 513 282 306 647 093 8… (Egentlig er den virkelige 𝜋 uendelig mye lengre!)

Denne utvidelsen bruker PHP BCMath Arbitrary Precision Mathematics APIet ved å bruke phpseclib/bcmath_compat for for å få tilgang til bc-programmeringsspråket.

Installering

Expect er avhengig av moduler fra Scribunto -utvidelsen.

  • Nedlasting and place the file(s) in a directory called BCmath in your extensions/ folder.
  • Add the following code at the bottom of your LocalSettings.php file:
    wfLoadExtension( 'BCmath' );
    
  • Yes Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Bruk

Arbeidsflyten er først å definere en BCmath-instans, og deretter bruke den i vanlige ligninger, i lenkede operasjoner, eller som en del av funksjonskall. Eksistens av en instans i støttede operasjoner vil utløse bruk av de spesielle funksjonene og metodene.

-- Used for chained operations
local sum1 = mw.bcmath.new( 0.0 ):add( 42.0 )                   -- 42.000000000000000
local sum2 = mw.bcmath.new( '0' ):add( '42' )                   -- 42

-- Used in an equation
local sum3 = sum1 * sum2 + 3.14                                 -- 1767.140000000000000

-- Used in function calls
local sum4 = mw.bcmath.add( mw.bcmath.mul( sum1, sum2 ), 3.14 ) -- 1767.140000000000000
local str1 = sum4 'sci'                                         -- 1.767140000000000000e3
local str2 = sum4( 'sci', 4 )                                   -- 1.767e3

For mer hjelp, se den genererte LDoc dokumentasjonen.

Utvikling

For å gjenskape det Vagrant-baserte utviklingsmiljøet, se BCmath: Manual/Vagrant.

Alternativer

Det beste og kanskje eneste virkelige alternativet er C-biblioteket decNumber som implementerer IEEE 754r og Lua-biblioteket ldecNumber for innpakning. Disse to må brukes sammen.

Biblioteket decNumber bør gjennomgå en sikkerhetsrevisjon før det brukes, men det er sannsynligvis trygt. Lua-biblioteket er arkivert, og er håpløst umoderne med siste versjon (ldecNumber-21) fra august 2007. Det er ingen kjent Mediawiki-integrasjon for decNumber/ldecNumber.

Se også