- Para tutarlarını işlemek yaygın bir bilgi işlem görevidir, ancak ana akım programlama dillerinde para tutarını ifade eden yerleşik bir veri tipi yoktur
- Bu durum, taksitli ödeme, döviz işlemleri, komisyon işleme ve vergi tahsilatı gibi işlerde yuvarlama sorunlarına yol açabilir
- Money, para tutarlarının hesaplanmasını ve dağıtılmasını kolaylaştırmaya yardımcı olan bir Kotlin kütüphanesidir
- Para tutarlarının matematiksel işlemlerini, yüzde hesaplamalarını ve dağıtımını destekleyerek çeşitli kullanım senaryolarını modelleyebilir
- Kripto paraları da varsayılan olarak destekler
- Dağıtım özelliği
- Kütüphanenin en büyük avantajlarından biri dağıtım özelliğidir
- Bir para tutarını birden çok parçaya bölerken toplamın özgün tutarla aynı kalmasını garanti eder
- Örneğin, bir müşteri 100,00 USD tutarındaki bir satın alımı üç taksitte ödediğinde, yuvarlama sorunlarından kaynaklanan kayıpları önleyebilir
- Dağıtım yöntemi
allocate() yöntemi kullanılarak sonuçların özgün tutardan farklı olmaması garanti edilir.
- Oranlara göre dağıtım yapmak için
Percentage değerlerinden oluşan bir liste geçirilir.
- Varsayılan olarak kütüphane farkı otomatik olarak dağıtır, ancak istenen dağıtım stratejisine göre ayarlanabilir.
- Kapanış
- Bu yazı, kütüphanenin özelliklerine kısa bir giriş niteliğindedir.
- API'yi sade tutmayı ve Android geliştirme desteği ile kalıcılık ve serileştirme özelliklerini kademeli olarak genişletmeyi planlıyor.
- Mevcut sürümün, Kotlin projelerinde para tutarlarını işleyen kişiler için faydalı olması umuluyor.
GN⁺ Özeti
- Para tutarlarını ele almak programlamada yaygın bir iştir, ancak yuvarlama sorunları nedeniyle karmaşık hale gelebilir.
- Money kütüphanesi, bu sorunları çözmek için tasarlanmış bir Kotlin kütüphanesidir ve para tutarlarının doğru şekilde dağıtılmasını ve hesaplanmasını destekler.
- Bu kütüphane 306 para birimini ve 2283 kripto parayı destekler; Kotlin projelerinde para tutarlarını ele almak için kullanışlıdır.
- Benzer işlevlere sahip diğer projeler arasında Java'daki Joda-Money kütüphanesi de bulunur.
1 yorum
Hacker News görüşleri
infix fonksiyonların kullanımı biraz tuhaf hissettiriyor
increaseByvedecreaseByyerineplusveminusoverload edilmemiş, merak ediyorumKütüphane için tebrikler ve paylaştığınız için teşekkürler
Rebol'ün para tipinin kullanılabilirliğini hatırlatıyor
Para işlemede ortaya çıkan edge case'ler hakkında sorular
Kullanıcı tanımlı para birimi desteğini beğendim
Spreadsheet dillerinin parayı iyi desteklememesi garip
C#'ın
decimaltipi para hesaplamaları için uygunYorumlarda çok şey öğrendim ve bu, kütüphanenin bir sonraki sürümüne yardımcı olacak
Kütüphaneden ziyade tüm edge case'leri ele alan kapsamlı bir test paketi isterdim
Tüm gereksinimleri karşılıyor gibi görünüyor ve para işlemenin temel zorlukları hakkında iyi bir tartışma içeriyor