Высокая точность чисел с плавающей точкой в ​​Haskell?

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

25
задан hammar 2 June 2013 в 00:02
поделиться

2 ответа

В зависимости от того, что именно вы ищете:

  • Float и Double - в значительной степени то, что вы знаете и «любите» из Float и Doubles на всех других языках.
  • Rational , который является Ratio из Integer с
  • FixedPoint - Этот пакет предоставляет значения фиксированной точки произвольного размера. Например, если вам нужно число, представленное 64 целыми битами и 64 дробными битами, вы можете использовать FixedPoint6464. Если вы хотите, чтобы число составляло 1024 целых и 8 дробных битов, используйте $(mkFixedPoint 1024 8) для генерации типа FixedPoint1024_8.
  • РЕДАКТИРОВАТЬ: И да, я только что узнал о пакете numbers, упомянутом выше - очень круто.
20
ответ дан Thomas M. DuBuisson 2 June 2013 в 00:02
поделиться

Если вам нужны высокоточные / быстрые вычисления / вычисления с плавающей запятой, вам может потребоваться использовать FFI и long double, поскольку собственный тип Haskell еще не реализован (см. https://ghc.haskell.org/ ПРОФ / GHC / билет / 3353 ).

1
ответ дан L29Ah 2 June 2013 в 00:02
поделиться
Другие вопросы по тегам:

Похожие вопросы: