- การจัดการจำนวนเงินเป็นงานคอมพิวเตอร์ที่พบได้ทั่วไป แต่ภาษาการเขียนโปรแกรมกระแสหลักไม่มีชนิดข้อมูลพื้นฐานสำหรับแทนจำนวนเงิน
- สิ่งนี้อาจก่อให้เกิดปัญหาการปัดเศษในงานอย่างการผ่อนชำระ การแลกเปลี่ยนเงินตราต่างประเทศ การประมวลผลค่าธรรมเนียม และการจัดเก็บภาษี
- Money คือไลบรารี Kotlin ที่ช่วยให้การคำนวณและการจัดสรรจำนวนเงินทำได้ง่ายขึ้น
- รองรับการคำนวณทางคณิตศาสตร์ของจำนวนเงิน การคำนวณเปอร์เซ็นต์ และการจัดสรร เพื่อใช้จำลองกรณีการใช้งานที่หลากหลาย
- รองรับคริปโทเคอร์เรนซีโดยพื้นฐานด้วย
- ความสามารถด้านการจัดสรร
- หนึ่งในจุดเด่นที่สุดของไลบรารีคือความสามารถด้านการจัดสรร
- สามารถแบ่งจำนวนเงินออกเป็นหลายส่วนโดยยังคงรับประกันว่าเท่ากับจำนวนเงินเดิม
- ตัวอย่างเช่น เมื่อผู้ใช้จ่ายเงินสำหรับการซื้อ USD 100.00 แบบผ่อน 3 งวด ก็สามารถป้องกันการสูญเสียจากปัญหาการปัดเศษได้
- วิธีการจัดสรร
- ใช้เมธอด
allocate() เพื่อรับประกันว่าผลลัพธ์จะไม่ต่างจากจำนวนเงินต้นฉบับ
- หากต้องการจัดสรรตามสัดส่วน ให้ส่งค่าของ
Percentage เป็นลิสต์
- โดยค่าเริ่มต้น ไลบรารีจะจัดสรรส่วนต่างให้อัตโนมัติ แต่ก็สามารถปรับเป็นกลยุทธ์การจัดสรรตามต้องการได้
- สรุป
- บทความนี้เป็นเพียงการแนะนำความสามารถของไลบรารีแบบสั้น ๆ
- มีแผนจะคงความกระชับของ API ไว้ พร้อมทั้งค่อย ๆ ขยายการรองรับการพัฒนา Android รวมถึงความสามารถด้าน persistence และ serialization
- หวังว่าเวอร์ชันปัจจุบันจะเป็นประโยชน์ต่อผู้ที่ต้องจัดการจำนวนเงินในโปรเจ็กต์ Kotlin
สรุปโดย GN⁺
- การจัดการจำนวนเงินเป็นงานที่พบได้บ่อยในการเขียนโปรแกรม แต่สามารถซับซ้อนได้จากปัญหาการปัดเศษ
- ไลบรารี Money เป็นไลบรารี Kotlin ที่ออกแบบมาเพื่อแก้ปัญหาเหล่านี้ โดยรองรับการจัดสรรและการคำนวณจำนวนเงินอย่างแม่นยำ
- ไลบรารีนี้รองรับ 306 สกุลเงินและ 2283 คริปโทเคอร์เรนซี จึงมีประโยชน์สำหรับการจัดการจำนวนเงินในโปรเจ็กต์ Kotlin
- โปรเจ็กต์อื่นที่มีความสามารถคล้ายกัน ได้แก่ไลบรารี Joda-Money ของ Java
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
การใช้ฟังก์ชัน infix ให้ความรู้สึกแปลกนิดหน่อย
plusและminusแทนincreaseByกับdecreaseByขอแสดงความยินดีกับไลบรารี และขอบคุณที่นำมาแชร์
ทำให้นึกถึงการใช้งานชนิดข้อมูลเงินของ Rebol
มีคำถามเกี่ยวกับ edge case ที่เกิดขึ้นระหว่างการจัดการเงิน
ชอบที่รองรับสกุลเงินแบบกำหนดเอง
แปลกดีที่ภาษาในสเปรดชีตไม่รองรับเรื่องเงินได้ดีนัก
ชนิดข้อมูล decimal ของ C# เหมาะกับการคำนวณเงิน
ได้เรียนรู้อะไรมากมายจากคอมเมนต์ และมันจะช่วยกับการพัฒนาไลบรารีรอบถัดไป
อยากได้ชุดทดสอบที่ครอบคลุมและเข้มข้นสำหรับจัดการทุก edge case มากกว่าตัวไลบรารีเอง
ดูเหมือนว่าจะตรงตามความต้องการทั้งหมด และมีการพูดคุยที่ดีเกี่ยวกับความยากหลักของการจัดการเงิน