标准Haskell使用standard double-precision arithmetic Double:
data Double
双精度浮点数。希望此类型至少在范围和精度上与IEEE双精度类型相等。
GHC / Haskell是否还提供扩展精度(80位)浮点数,可能使用某些外部库?
标准Haskell使用standard double-precision arithmetic Double:
data Double
双精度浮点数。希望此类型至少在范围和精度上与IEEE双精度类型相等。
GHC / Haskell是否还提供扩展精度(80位)浮点数,可能使用某些外部库?
正如chuff所指出的那样,你可能想要查看Hackage上的numbers包。你可以使用cabal install numbers
安装它。这是一个例子:
import Data.Number.CReal -- from numbers
main :: IO ()
main = putStrLn (showCReal 100 (sqrt 2))
-- output: 1.4142135623730950488016887242096980785696718753769480731766797379907324784621070388503875343276415727
根据文档所述,showCReal
函数返回一个字符串,该字符串显示给定类型为CReal
且精确到给定小数位数的数字。
CLDouble
的支持 - hammar