парсинг и чтение значений с плавающей точкой в ​​Haskell - PullRequest
0 голосов
/ 21 февраля 2012

Я работаю над синтаксическим анализом с haskell, хочу разобрать значение метки времени, выраженное таким образом

946685561.618847

У меня нет проблем с распознаванием (анализом) этого, но моя проблема связана с типом результата. Я думаю о двух ситуациях:

  1. Есть ли в Haskell дробный тип, чтобы результат можно было связать с дробным значением?
  2. Если это не так, то как сохранить это значение, поскольку Int находится в диапазоне от -2 29 до 2 29 - 1?

1 Ответ

6 голосов
/ 21 февраля 2012

На самом деле существует несколько дробных типов - существует даже целый Fractional класс.

Чаще всего используется Double, то есть число с плавающей запятой двойной точности. Вы также можете использовать Float с одинарной точностью.

Другой альтернативой является использование типа Rational, который позволяет хранить число в соотношении двух Integer с. (По совпадению, Integer является неограниченным целочисленным типом. Int является названием для ограниченной версии.)

Эти типы (Double, Float и Rational) хороши для хранения рациональных значений. Если вы просто хотите сохранить большое целое значение, используйте Integer, который не ограничен. (То есть он может хранить целые числа произвольного размера.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...