Integer зберігає будь-яке число, яким би великим воно не було, аж до межі памʼяті нашої машини, тоді як Int відповідає набору додатних і відʼємних цілих чисел, які можна подати у 32 або 64 бітах (гарантовано принаймні від -2^29 до 2^29).
Float відповідає набору дійсних чисел, обмеженому точністю компʼютера.
Операції, визначені для чисел, зазвичай працюють з одним типом або з іншим, але не з обома одночасно.
Функції для перетворення між Float та Integer включають, серед інших, toFloat, яка перетворює Int/Integer на Float, і ceiling, яка перетворює Float на Int.
Перетворення з цілого типу (Int або Integer) на будь-який інший числовий тип виконується за допомогою функції fromIntegral.
Цільовий тип виводиться автоматично.
Наприклад:
n :: Integer
n = 6
x :: Float
x = fromIntegral n --> x = 6.0
m :: Int
m = 7
y :: Double
y = fromIntegral m --> y = 7.0
Ми - частина організації пожежників, яка складається з волонтерів з різних країн. Через міжнародний склад команди за останні кілька викликів було змарновано багато цінного часу на переклад між Фаренгейтом і Цельсієм, поки ми оцінювали температуру всередині палаючих будівель. Щоб заощадити час і врятувати людей, ми вирішуємо створити програму, яка автоматично переводитиме температуру між Фаренгейтом і Цельсієм для нашої міжнародної команди.
Реалізуйте функцію tempToC, яка перетворює температуру в градусах Фаренгейта (тип Integer) на відповідне значення в градусах Цельсія (тип Float), округлене до найближчої сотої.
Температура в градусах Цельсія визначається так: T(°C) = (T(°F) - 32) / 1.8.
> tempToC 32
0.00
Реалізуйте функцію tempToF, яка перетворює температуру в градусах Цельсія (тип Float) на відповідне значення в градусах Фаренгейта.
З міркувань безпеки округліть результат у більший бік до наступного більшого цілого числа (тип Integer).
Температура в градусах Фаренгейта визначається так: T(°F) = T(°C) × 1.8 + 32.
> tempToF 4
40