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.
MediaWiki extensions manual
BCmath
Release status: experimental
Implementation API
Beskrivelse Tilbyder aritmetik med vilkårlig præcision for Scribunto.
Forfatter(e)
  • John Erling Blad (Jebladdiskussion)
Latest version 0.1.0
Compatibility policy Master maintains backward compatibility.
MediaWiki >= 1.33
Database changes Nej
Composer jeblad/bcmath
Licens GNU General Public License 2.0 or later
Download
README, LDoc
  • $wgExtFiltering
Translate the BCmath extension

BCmath tilbyder aritmetik med vilkårlig præcision for Lua moduler. Med biblioteket fra denne udvidelse så er det fuldstændig gyldigt at gøre beregninger med 𝜋 <! - matematisk kursiv lille 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… (Egentligt er den virkelige 𝜋 uendeligt meget længere!)

Denne udvidelse bruger PHP BCMath Arbitrary Precision Mathematics APIet ved at bruge phpseclib/bcmath_compat for for at få tilgang til bc-programmeringssproget.

Installation

Expect er afhængigt af moduler fra Scribunto -udvidelsen.

  • Nedlastning 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 DoneNavigate to Special:Version on your wiki to verify that the extension is successfully installed.

Anvendelse

Arbejdeflowet er først at definere en BCmath-instans, og derefter bruge den i normale ligninger, i lænkede operationer, eller som en del af funktionkald. Eksistens af en instans i støttede operationer vil udløse brug af de specielle funktionerne og metoderne.

-- 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 mere hjælp, se den genererede LDoc dokumentationen.

Udvikling

For at gjenskape det Vagrant-baserede udviklingmiljø, se BCmath: Manual/Vagrant.

Alternativer

Det bedste og måske eneste virkelige alternativ er C-biblioteket decNumber som implementerer IEEE #754r og Lua-bibliotek ldecNumber for innpakning. Disse to må bruges sammen.

Biblioteket decNumber bør gennemgå en sikkerhedrevision føder det bruges, men det er sandsynligvis trygt. Lua-bibliotek er arkiveret, og er håbløst umoderne med sidste version (ldecNumber-#21) fra august #2007 . Det er ingen kendt Mediawiki-integration for decNumber/ldecNumber.

Se også