Подтвердить что ты не робот

Возможно ли использовать арифметику с плавающей запятой с расширенной точностью (80 бит) в GHC/Haskell?

Стандартный Haskell Double использует стандартную арифметику с двойной точностью:

data DoubleНомера с плавающей запятой с двойной точностью. Желательно, чтобы этот тип был как минимум равным по диапазону и точности для типа двойной точности IEEE.

Предлагает ли GHC/Haskell где-то еще расширенную точность (80-битных) чисел с плавающей запятой, возможно, используя некоторую внешнюю библиотеку?

4b9b3361

Ответ 1

Как уже отмечалось, вы можете посмотреть пакет numbers в хаке. Вы можете установить его с помощью cabal install numbers. Вот пример:

import Data.Number.CReal -- from numbers

main :: IO ()
main = putStrLn (showCReal 100 (sqrt 2))

-- output: 1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727

Как сообщает документация, showCReal возвращает строку, показывающую заданное число типа CReal с заданным числом десятичных знаков.