Um número de ponto flutuante é um número com zero ou mais dígitos depois do separador decimal. Alguns exemplos são -2.4, 0.1, 3.14, 16.984025 e 1024.0.
Tipos de ponto flutuante diferentes conseguem armazenar quantidades diferentes de dígitos depois do separador decimal, e é isso que chamamos de precisão. Isso significa que, ao tentar armazenar PI em um single, só os 6 a 9 primeiros dígitos serão guardados (com o último dígito arredondado).
Números de ponto flutuante em Clojure são lidos como Double; com o sufixo M, são lidos como BigDecimal.
Double: 8 bytes (precisão de ~15 a 17 dígitos). Esse é o tipo mais comum. Escrito como 2.45.BigDecimal: valor inteiro não escalonado de precisão arbitrária e uma escala de 32 bits. Escrito como 2.45M.Neste exercício, você vai trabalhar com contas de poupança. A cada ano, o saldo da sua conta de poupança é atualizado com base na sua taxa de juros. A taxa de juros que o seu banco oferece depende da quantidade de dinheiro na sua conta (o saldo):
1000 dólares.1000 dólares e menor que 5000 dólares.5000 dólares.A cada ano, antes que o saldo da sua conta de poupança seja atualizado, o governo permite que você doe uma porcentagem do seu dinheiro para instituições de caridade, sem pagar impostos. Como você é uma pessoa legal, se o seu saldo for positivo no fim do ano, você doa o dobro desse valor para instituições de caridade, arredondado para baixo até o dólar inteiro mais próximo.
Você tem três tarefas, e cada uma delas vai lidar com o seu saldo e a sua taxa de juros.
Implemente a função interest-rate para calcular a taxa de juros com base no saldo especificado:
(interest-rate 200.75M)
;;=> 0.5
Observe que o valor retornado é um Double.
Implemente a função annual-balance-update para calcular a atualização anual do saldo, levando em conta a taxa de juros:
(annual-balance-update 200.75M)
;;=> 201.75375M
Observe que o valor retornado é um BigDecimal.
Implemente a função amount-to-donate para calcular quanto dinheiro doar para instituições de caridade, com base no saldo e na porcentagem isenta de impostos que o governo permite:
(def balance 550.5M)
(def tax-free-percentage 2.5)
(amount-to-donate balance tax-free-percentage)
;;=> 27
Observe que o valor retornado é um int.
Crie sua conta no Exercism para aprender e dominar Clojure com 12 conceitos105 exercícios e mentoria humana de verdade, tudo de graça.