Un número de punto 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 punto flotante pueden almacenar distinta cantidad de dígitos después del separador decimal. A esto se le llama su precisión. Esto significa que si intentas guardar 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 punto flotante en Clojure se leen como Doubles; con el sufijo M se leen como BigDecimals.
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 entera 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 tasa de interés. La tasa 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 obras 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 obras benéficas, redondeando hacia abajo al dólar entero más cercano.
Tienes tres tareas, y cada una trata sobre tu saldo y su tasa de interés.
Implementa la función interest-rate para calcular la tasa de interés según el saldo especificado:
(interest-rate 200.75M)
;;=> 0.5
Ten en cuenta que el valor que se devuelve es un Double.
Implementa la función annual-balance-update para calcular la actualización anual del saldo, teniendo en cuenta la tasa de interés:
(annual-balance-update 200.75M)
;;=> 201.75375M
Ten en cuenta que el valor que se devuelve es un BigDecimal.
Implementa la función amount-to-donate para calcular cuánto dinero donar a obras benéficas según el 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 que se devuelve es un int.
Regístrate en Exercism para aprender y dominar Clojure con 12 conceptos105 ejercicios y mentoría humana real, todo gratis.