Rutas
/
Clojure
Clojure
/
Ejercicios
/
El interés es interesante
El interés es interesante

El interés es interesante

Ejercicio de aprendizaje

Introducción

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.

Instrucciones

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):

  • -3,213% para un saldo negativo.
  • 0,5% para un saldo inferior a 1000 dólares.
  • 1,621% para un saldo mayor o igual que 1000 dólares y menor que 5000 dólares.
  • 2,475% para un saldo mayor o igual que 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.

1. Calcula el 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.

2. Calcula la actualización anual del saldo

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.

3. Calcula cuánto dinero donar

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.

Editar en GitHub El enlace se abre en una ventana o pestaña nueva
Clojure Exercism

¿Listo para empezar El interés es interesante?

Regístrate en Exercism para aprender y dominar Clojure con 12 conceptos105 ejercicios y mentoría humana real, todo gratis.