Un número de coma flotante es un número con cero o más dígitos detrás del separador decimal. Algunos ejemplos son -2.4, 0.1, 3.14, 16.984025 y 1024.0.
Los distintos tipos de coma flotante pueden almacenar un número diferente de dígitos después del separador decimal. A esto se le llama su precisión. Esto significa que si intentas almacenar PI en un single, solo se almacenarán los primeros 6 a 9 dígitos (con el último dígito redondeado).
Los números de coma flotante en Clojure se leen como Double; con el sufijo M se leen como BigDecimal.
Double: 8 bytes (~15-17 dígitos de precisión). Es el tipo más común. Se escribe como 2.45.BigDecimal: valor entero sin escalar de precisión arbitraria y una escala de entero de 32 bits. Se escribe como 2.45M.En este ejercicio vas a trabajar con cuentas de ahorro. Cada año, el saldo de tu cuenta de ahorro se actualiza según su tipo de interés. El tipo de interés que te da tu banco depende de la cantidad de dinero que haya en tu cuenta (su saldo):
1000 dólares.1000 dólares y menor que 5000 dólares.5000 dólares.Cada año, antes de que se actualice el saldo de tu cuenta de ahorro, el gobierno te permite donar un porcentaje de tu dinero a organizaciones benéficas, libre de impuestos. Como eres una buena persona, si tu saldo es positivo al final del año, donas el doble de esa cantidad a organizaciones benéficas, redondeado hacia abajo al dólar entero más cercano.
Tienes tres tareas, y cada una de ellas tratará tu saldo y su tipo de interés.
Implementa la función interest-rate para calcular el tipo de interés a partir del saldo indicado:
(interest-rate 200.75M)
;;=> 0.5
Ten en cuenta que el valor devuelto es un Double.
Implementa la función annual-balance-update para calcular la actualización anual del saldo, teniendo en cuenta el tipo de interés:
(annual-balance-update 200.75M)
;;=> 201.75375M
Ten en cuenta que el valor devuelto es un BigDecimal.
Implementa la función amount-to-donate para calcular cuánto dinero donar a organizaciones benéficas a partir del saldo y el porcentaje libre de impuestos que permite el gobierno:
(def balance 550.5M)
(def tax-free-percentage 2.5)
(amount-to-donate balance tax-free-percentage)
;;=> 27
Ten en cuenta que el valor devuelto es un int.
Regístrate en Exercism para aprender y dominar Clojure con 12 conceptos105 ejercicios y mentoría humana real, todo gratis.