是否可以在 GHC/Haskell 中使用扩展精度(80 位)浮点运算?

2024-02-03

标准哈斯克尔Double http://hackage.haskell.org/packages/archive/base/latest/doc/html/Prelude.html#t%3aDouble uses 标准双精度算术 https://en.wikipedia.org/wiki/Double_precision:

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

GHC/Haskell 是否也提供扩展精度 https://en.wikipedia.org/wiki/Extended_precision(80 位)浮点数,也许使用一些外部库?


正如查夫所指出的,你可能想看看numbers http://hackage.haskell.org/package/numbers黑客攻击包。你可以安装它cabal install numbers。这是一个例子:

import Data.Number.CReal -- from numbers

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

-- output: 1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727

As the 文档 http://hackage.haskell.org/packages/archive/numbers/3000.1.0.3/doc/html/Data-Number-CReal.html状态,showCReal返回一个显示给定数量类型的字符串CReal与给定的小数位数。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 GHC/Haskell 中使用扩展精度(80 位)浮点运算? 的相关文章

随机推荐