【问题标题】:Is it possible to use extended precision (80-bit) floating point arithmetic in GHC/Haskell?是否可以在 GHC/Haskell 中使用扩展精度(80 位)浮点运算?
【发布时间】:2013-05-23 18:19:58
【问题描述】:

标准 Haskell 的 Double 使用 the standard double-precision arithmetic

data Double 双精度浮点数。希望这种类型在范围和精度上至少与 IEEE 双精度类型相同。

GHC/Haskell 是否也在某处提供 extended precision(80 位)浮点数,也许使用一些外部库?

【问题讨论】:

标签: haskell floating-point ghc floating-point-precision extended-precision


【解决方案1】:

正如chuff 所指出的,您可能想看看numbers hackage 包。您可以使用cabal install numbers 安装它。这是一个例子:

import Data.Number.CReal -- from numbers

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

-- output: 1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727

正如documentation 所述,showCReal 返回一个字符串,该字符串显示具有给定小数位数的CReal 类型。

【讨论】:

  • 我想我是在假设我正在和一个初学者交谈......无论如何。 ;)
  • 我不认为他在寻找任意精度,只是一种利用大多数流行处理器的 80 位浮点功能的方法。
  • 是的,感谢指向 numbers 的指针,它可能会派上用场,但现在我正在寻找 80 位浮点运算。
猜你喜欢
  • 2012-11-08
  • 2011-02-27
  • 2020-09-24
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 2012-11-23
  • 2012-04-26
  • 2023-03-23
相关资源
最近更新 更多