Az Elixirben kétféle szám létezik: egész számok és lebegőpontos számok.
Az egész számok olyan számok, amelyeknek nincs törtrészük.
integer = 3
# => 3
A lebegőpontos számok olyan számok, amelyekben a tizedeselválasztó után egy vagy több számjegy áll. A 64 bites dupla pontosságú lebegőpontos formátumot használják.
float = 3.45
# => 3.45
Az Integer és a Float modulban hasznos függvényeket találsz ezeknek a típusoknak a kezeléséhez. Az alapvető aritmetikai operátorokat a Kernel modul definiálja.
Egy aritmetikai kifejezésben egész és lebegőpontos számokat is keverhetsz. Ha egy kifejezésben lebegőpontos szám szerepel, az eredmény is lebegőpontos lesz.
2 * 3
# => 6
2 * 3.0
# => 6.0
Osztásnál viszont az eredmény mindig lebegőpontos szám lesz, még akkor is, ha csak egész számokat használsz.
6 / 2
# => 3.0
Egy lebegőpontos számot úgy alakíthatsz egész számmá, hogy a trunc/1 függvénnyel eldobod a törtrészét.
Ebben a feladatban olyan kódot írsz, amely segít egy szabadúszónak kommunikálni egy projektmenedzserrel. A feladatod, hogy néhány segédeszközt biztosíts a napi és a havi díj gyors kiszámításához, opcionálisan egy megadott kedvezménnyel.
Először is lefektetünk néhány szabályt a szabadúszó és a projektmenedzser között:
Előfordul, hogy a szabadúszó kedvezményt alkalmaz a napi díjára (például a leghűségesebb ügyfelei vagy a nonprofit ügyfelei számára).
A kedvezményeket százalékot jelölő törtszámként modellezzük, például 25.0 (25%).
Valósíts meg egy daily_rate nevű függvényt, amely paraméterként kap egy óradíjat, és kiszámítja a napi díjat.
A szerződés meghatározza, hogy egy nap 8 számlázható órából áll.
FreelancerRates.daily_rate(60)
# => 480.0
A visszaadott napi díj egy lebegőpontos szám legyen.
Valósíts meg egy apply_discount függvényt, amely kiszámítja a kedvezmény utáni árat.
FreelancerRates.apply_discount(150, 10)
# => 135.0
A visszaadott érték mindig lebegőpontos szám legyen, és semmilyen módon ne legyen kerekítve.
Valósíts meg egy monthly_rate függvényt, amely kiszámítja a kedvezményes havi díjat.
Két paramétert vesz át: egy óradíjat és a kedvezményt százalékban.
FreelancerRates.monthly_rate(77, 10.5)
# => 12130
A visszaadott havi díjat felfelé kell kerekíteni (vedd a felső egészrészt) a legközelebbi egész számra.
Valósíts meg egy days_in_budget függvényt, amely egy büdzsé, egy óradíj és egy kedvezmény alapján kiszámítja, hogy az hány teljes nap munkát fedez.
FreelancerRates.days_in_budget(20000, 80, 11.0)
# => 35.1
A visszaadott napszámot egy tizedesjegyre, lefelé kell kerekíteni (vedd az alsó egészrészt).
Iratkozz fel az Exercism-re, hogy megtanuld és elsajátítsd a(z) Elixir nyelvet 58 fogalom168 feladat segítségével, valódi emberi mentorálással, mindez ingyen.