Extension:BCmath

From MediaWiki.org
Jump to navigation Jump to search
This page is a translated version of the page Extension:BCmath and the translation is 92% complete.
Outdated translations are marked like this.
Other languages:
English • ‎dansk • ‎norsk bokmål • ‎norsk nynorsk • ‎svenska • ‎日本語
MediaWiki extensions manual
OOjs UI icon advanced.svg
BCmath
Release status: experimental
PI constant.svg
Description Tilbyr aritmetikk med vilkårlig presisjon for Scribunto.
Author(s)
License GNU General Public License 2.0 or later
Download
README, LDoc
Translate the BCmath extension
Check usage and version matrix.

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:
    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: Topics/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å