Extension:BCmath

This page is a translated version of the page Extension:BCmath and the translation is 92% complete.
Outdated translations are marked like this.
MediaWiki extensions manual
BCmath
Release status: experimental
Implementation API
Description Tilbyr aritmetikk med vilkårleg presisjon for Scribunto.
Author(s)
  • John Erling Blad (Jebladdiskusjon)
Latest version 0.1.0
Compatibility policy Master maintains backward compatibility.
MediaWiki >= 1.33
Database changes No
Composer jeblad/bcmath
License GNU General Public License 2.0 or later
Download
README, LDoc
  • $wgExtFiltering
Translate the BCmath extension

BCmath tilbyr aritmetikk med vilkårleg presisjon for Lua modular. Med biblioteket frå denne utvidinga så er det fullstendig gyldig å gjera berekningar med 𝜋 <! - matematisk kursiv liten pi -> på 125 teikn, 𝜋 ≅ 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… (Eigenleg er den verkelege 𝜋 uendeleg mykje lengre!)

Denne utvidinga brukar PHP BCMath Arbitrary Precision Mathematics APIet ved å bruka phpseclib/bcmath_compat for å få tilgang til bc-programmeringsspråket.

Installering

Expect er avhengig av modular frå Scribunto -utvidinga.

  • 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' );
    
  •   Done – Navigate to Special:Version on your wiki to verify that the extension is successfully installed.

Bruk

Arbeidsflyt er først å definera ein BCmath-instans, og deretter bruka den i vanlege likningar, i lenkja operasjonar, eller som ein del av funksjonskall. Eksistens av ein instans i støtta operasjonar vil utløysa bruk av dei spesielle funksjonane og metodane.

-- 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 meir hjelp, sjå den genererte LDoc dokumentasjonen.

Utvikling

For å attskapa det Vagrant-baserte utviklingsmiljøet, sjå BCmath: Manual/Vagrant.

Alternativ

Det beste og kanskje einaste verkelege alternativ er C-biblioteket decNumber som implementerer IEEE 754r og Lua-biblioteket ldecNumber for innpakning. Desse to må verta brukt saman.

Biblioteket decNumber bør gjennomgå ein tryggleiksrevisjon før det brukast, men det er sannsynlegvis trygt. Lua-biblioteket er arkivert, og er håplaust umoderne med siste versjon (ldecNumber-21) frå august 2007. Det er ingen kjend Mediawiki-integrasjon for decNumber/ldecNumber.

Sjå òg