- Manipular valores monetários é uma tarefa comum na computação, mas as linguagens de programação convencionais não têm um tipo de dado nativo para representar quantias em dinheiro
- Isso pode causar problemas de arredondamento em tarefas como pagamento parcelado, câmbio, processamento de taxas e cobrança de impostos
- Money é uma biblioteca Kotlin que ajuda a facilitar o cálculo e a alocação de valores monetários
- Suporta operações matemáticas com valores monetários, cálculo de porcentagens e alocação, permitindo modelar diversos casos de uso
- Também oferece suporte nativo a criptomoedas
- Funcionalidade de alocação
- Uma das maiores vantagens da biblioteca é o recurso de alocação
- Ele divide um valor em várias partes garantindo que a soma continue igual ao valor original
- Por exemplo, quando um cliente paga uma compra de USD 100.00 em três parcelas, é possível evitar perdas causadas por problemas de arredondamento
- Como fazer a alocação
- Use o método
allocate() para garantir que o resultado não tenha diferença em relação ao valor original.
- Para alocar de acordo com proporções, passe uma lista de valores
Percentage.
- Por padrão, a biblioteca distribui automaticamente a diferença, mas isso pode ser ajustado com a estratégia de alocação desejada.
- Encerrando
- Este texto é uma apresentação breve das funcionalidades da biblioteca.
- O plano é manter a API enxuta e expandir gradualmente o suporte ao desenvolvimento Android, além de recursos de persistência e serialização.
- Espera-se que a versão atual seja útil para quem manipula valores monetários em projetos Kotlin.
Resumo do GN⁺
- Lidar com dinheiro é uma tarefa comum em programação, mas pode se tornar complexo por causa de problemas de arredondamento.
- A biblioteca Money foi projetada para resolver esses problemas em Kotlin, oferecendo suporte a cálculo e alocação precisa de valores monetários.
- A biblioteca oferece suporte a 306 moedas e 2283 criptomoedas, sendo útil para lidar com dinheiro em projetos Kotlin.
- Outros projetos com funcionalidades semelhantes incluem a biblioteca Joda-Money do Java.
1 comentários
Comentários no Hacker News
o uso de função infix parece um pouco estranho
pluseminusem vez de usar "increaseBy" e "decreaseBy"parabéns pela biblioteca e obrigado por compartilhar
isso lembra a usabilidade do tipo monetário do Rebol
perguntas sobre edge cases que surgem ao lidar com dinheiro
gosto do suporte a moedas personalizadas
é estranho que linguagens de planilha não deem um bom suporte a dinheiro
o tipo
decimaldo C# é adequado para cálculos monetáriosaprendi muito com os comentários, e isso vai ajudar na próxima iteração da biblioteca
mais do que a biblioteca, eu gostaria de uma suíte de testes abrangente que cobrisse todos os edge cases
parece atender a todos os requisitos, e há uma boa discussão sobre as principais dificuldades do tratamento de dinheiro