Extension:BCmath
BCmath Sürüm durumu: deneysel |
|
---|---|
Uygulama | API |
Açıklama | Scribunto için keyfi hassasiyetli aritmetik sağlar. |
Yazar(lar) | |
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 |
Lisans | GNU Genel Kamu Lisansı 2.0 veya üstü |
İndir | GitHub: Not: README, LDoc |
|
|
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üzdekiBCmath
adlı dizine yerleştirin. - LocalSettings.php dosyanızın altına aşağıdaki kodu ekleyin:
wfLoadExtension( 'BCmath' );
- 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 (C-library)
- ldecNumber (Lua-library)
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.