在Haskell中解析和读取浮点值

时间:2012-02-21 10:30:07

标签: parsing haskell

我正在使用haskell进行解析,我想解析以这种方式表示的时间戳值

946685561.618847

我没有问题来识别(解析)它,但我的问题是关于结果的类型。我想到了两种情况:

  1. Haskell中是否存在小数类型,以便结果可以与小数值相关联?
  2. 如果不是这种情况,那么如何存储这个值,因为Int范围从-2 29 到2 29 - 1?

1 个答案:

答案 0 :(得分:6)

实际上有多种小数类型 - 甚至还有整个Fractional类。

最常用的是Double,它是一个双精度浮点数。您也可以使用单精度Float

另一种选择是使用Rational类型,它允许您将数字存储为两个Integer的比率。 (巧合的是,Integer无界整数类型。Int是有界版本的名称。)

这些类型(DoubleFloatRational)适合存储理性值。如果您只想存储一个大的整数值,请使用无限制的Integer。 (也就是说,它可以存储任意大小的整数。)