- Manipular montos monetarios es una tarea común en la computación, pero los lenguajes de programación convencionales no tienen un tipo de dato básico para representar montos de dinero
- Esto puede provocar problemas de redondeo en tareas como pagos a plazos, operaciones de cambio, procesamiento de comisiones y recaudación de impuestos
- Money es una biblioteca de Kotlin que ayuda a facilitar el cálculo y la asignación de montos de dinero
- Permite modelar varios casos de uso al admitir operaciones matemáticas sobre montos, cálculo de porcentajes y asignación
- También admite criptomonedas de forma predeterminada
- Función de asignación
- Una de las mayores ventajas de la biblioteca es su función de asignación
- Garantiza que, al dividir un monto en varias partes, el total siga siendo igual al monto original
- Por ejemplo, cuando un cliente paga una compra de USD 100.00 en tres cuotas, se puede evitar la pérdida causada por problemas de redondeo
- Método de asignación
- Usa el método
allocate() para garantizar que el resultado no difiera del monto original.
- Para asignar según una proporción, se pasa una lista de valores
Percentage.
- De forma predeterminada, la biblioteca asigna automáticamente la diferencia, pero se puede ajustar con la estrategia de asignación que se desee.
- Cierre
- Este artículo es una introducción breve a las funciones de la biblioteca.
- El plan es mantener la API concisa y ampliar gradualmente el soporte para desarrollo Android, además de funciones de persistencia y serialización.
- Esperan que la versión actual sea útil para quienes manipulan montos de dinero en proyectos Kotlin.
Resumen de GN⁺
- Manejar montos de dinero es una tarea común en programación, pero puede volverse compleja por los problemas de redondeo.
- La biblioteca Money fue diseñada para resolver estos problemas y admite asignación y cálculo precisos de montos monetarios.
- Esta biblioteca admite 306 monedas y 2283 criptomonedas, por lo que es útil para manejar dinero en proyectos Kotlin.
- Otros proyectos con funciones similares incluyen la biblioteca Joda-Money de Java.
1 comentarios
Opiniones en Hacker News
El uso de funciones infix se siente un poco extraño
plusyminusen lugar de "increaseBy" y "decreaseBy"Felicitaciones por la librería y gracias por compartirla
Me recuerda la usabilidad del tipo de dinero de Rebol
Preguntas sobre casos límite que aparecen al manejar dinero
Me gusta que soporte monedas personalizadas
Es extraño que los lenguajes de hojas de cálculo no den buen soporte al dinero
El tipo decimal de C# es adecuado para cálculos monetarios
Aprendí mucho en los comentarios, y será útil para la siguiente iteración de la librería
Más que la librería, quisiera una suite de pruebas exhaustiva que cubra todos los casos límite
Parece cumplir con todos los requisitos y hay una buena discusión sobre las principales dificultades del manejo de dinero