非整数的任意精度

时间:2014-03-19 08:39:58

标签: math haskell

Haskell有一个内置的Integer类型,它处理任意精度的整数。还有Rational,它是一个任意精度的分数。但是对这类事情的算术需要找到一个共同的分母,然后将结果取消到最少的条件。

如果我想在尾数中使用(例如)100位精度进行浮点运算,该怎么办?我该怎么做?

我看到那里有一个Data.Fixed模块,但这似乎提供了一些具有固定精度的自定义编写类型。根据每项任务需要多少准确度,我想要的是能够在运行时动态增加或减少精度的东西。

PS。我不是在寻找十进制算术,虽然我想知道它是否在某处可用会很有趣......

2 个答案:

答案 0 :(得分:4)

numbers包中试用Data.Number.CReal。它为您提供转换为字符串时所要求的精度。

答案 1 :(得分:0)

http://hackage.haskell.org/package/numbers-2009.8.9/docs/Data-Number-BigFloat.html怎么样?在这个BigFloat数据类型中,您可以自己选择精度。我知道它的小数,但也许你可以很容易地将其改为二进制