В Haskell округление чисел — обычная задача в различных приложениях. Если вам нужно округлить числа с плавающей запятой, усечь десятичные дроби или выполнить округление с определенной точностью, Haskell предоставляет несколько методов для достижения точных и надежных результатов. В этой статье мы рассмотрим несколько методов округления в Haskell, сопровождая их примерами кода.
- округление:
Функцияround
в Haskell округляет число с плавающей запятой до ближайшего целого числа. Он использует стандартное правило округления, округляя полуцелые числа до ближайшего четного числа. Вот пример:
number = 3.6
rounded = round number
-- Output: 4
- Потолок:
Функцияceiling
округляет число с плавающей запятой до следующего по величине целого числа. Он всегда возвращает целое число, большее или равное входному. Вот пример:
number = 3.2
rounded = ceiling number
-- Output: 4
- floor:
Функцияfloor
округляет число с плавающей запятой до ближайшего наименьшего целого числа. Он всегда возвращает целое число, меньшее или равное входному. Вот пример:
number = 3.8
rounded = floor number
-- Output: 3
- truncate:
Функцияtruncate
усекает число с плавающей запятой до нуля, удаляя десятичную часть без округления. Фактически оно округляется в сторону нуля. Вот пример:
number = 3.9
rounded = truncate number
-- Output: 3
- properFraction:
ФункцияproperFraction
разделяет целую и дробную части числа, возвращая их в виде кортежа. Он использует усечение для определения целой части и возвращает дробную часть как отдельное значение. Вот пример:
number = 3.5
(integerPart, fractionalPart) = properFraction number
-- Output: integerPart = 3, fractionalPart = 0.5
- Арифметика с фиксированной запятой с помощью
Data.Fixed
:
МодульData.Fixed
в Haskell предоставляет типы арифметики с фиксированной запятой, такие какFixed
иE12
. Эти типы позволяют явно выполнять округление и контроль точности. Вот пример использованияFixed
:
import Data.Fixed
number :: Fixed E2
number = 3.678
rounded :: Fixed E2
rounded = roundFixed number
-- Output: 3.68
Округление чисел является важной операцией во многих приложениях, и Haskell предоставляет множество методов для обработки различных сценариев округления. В этой статье мы рассмотрели различные методы округления, в том числе round
, ceiling
, floor
, truncate
, . 20и арифметика с фиксированной запятой с помощью Data.Fixed
. Понимая и эффективно используя эти методы, вы можете обеспечить точное и точное округление в своих программах на Haskell.