Extension:BCmath

From mediawiki.org
This page is a translated version of the page Extension:BCmath and the translation is 100% complete.
MediaWiki manüel uzantıları
BCmath
Sürüm durumu: deneysel
Uygulama API
Açıklama Scribunto için keyfi hassasiyetli aritmetik sağlar.
Yazar(lar)
  • John Erling Blad (Jebladmesaj)
En son sürüm 0.1.0
Uyumluluk politikası Master, geriye dönük uyumluluğu korur.
MediaWiki >= 1.33
Veritabanı değişiklikleri Hayır
Composer jeblad/bcmath
Lisans GNU Genel Kamu Lisansı 2.0 veya üstü
İndir
README, LDoc
  • $wgExtFiltering
BCmath uzantısını çevirin

BCmath, rastgele-hassas aritmetik için Lua modülleri sağlar. Bu uzantıdaki lib ile 125 karakterlik 𝜋 üzerinde hesaplamalar yapmak tamamen geçerli olacaktır, 𝜋 ≅ 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… (Aslında, gerçek even eşittir sonsuz daha uzun!)

Uzantı, bc programlama dili erişimine erişmek için phpseclib/bcmath_compat kullanarak PHP BCMath Keyfi Hassas Matematik api kullanır.

Kurulum

Beklenti, Scribunto uzantıdaki modüllere bağlıdır.

  • Dosyaları İndir ve extensions/ klasörünüzdeki BCmath adlı dizine yerleştirin.
  • LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
    wfLoadExtension( 'BCmath' );
    
  • Yes Yapıldı – Uzantının başarıyla yüklendiğini doğrulamak için vikinizde Special:Version seçeneğine gidin.

Kullanım

İş akışı önce bir BCmath örneği tanımlamak ve daha sonra bunu normal denklemlerde, zincirleme işlemlerde veya işlev çağrılarının bir parçası olarak kullanmaktır. Desteklenen işlemlerde bir örneğin bulunması özel işlev ve yöntemlerin kullanımını tetikler.

-- 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

Daha fazla yardım için, oluşturulan LDoc belgelere bakın.

Geliştirme

Vagrant tabanlı geliştirme ortamını yeniden oluşturmak için BCmath: Manual/Vagrant sayfasına bakın.

Alternatifler

En iyi ve belki de tek gerçek alternatif, IEEE 754r uygulayan decNumber C-kütüphane ve ldecNumber. decNumber ile arayüz oluşturmak için Lua sarıcı kütüphanesi. Bu ikisi birlikte kullanılmalıdır.

decNumber kütüphanesi kullanılmadan önce bir güvenlik denetimine sahip olmalıdır, ancak muhtemelen güvenlidir. Lua kütüphanesi arşivlendi ve Ağustos 2007'den itibaren son sürümle (ldecNumber-21) umutsuzca eskimiş. decNumber/ldecNumber için bilinen bir Mediawiki entegrasyonu yoktur.

Ayrıca bakınız