27

Haskellにはネイティブのデータ型があることを知っています。これにより、非常に大きな整数を使用できるようになります。

>> let x = 131242358045284502395482305
>> x
131242358045284502395482305

期待どおりに動作します。私が使用できる同様の「大精度フロート」ネイティブ構造があるかどうか疑問に思っていたので、

>> let x = 5.0000000000000000000000001
>> x
5.0000000000000000000000001

可能性があります。これを Haskell に入力すると、小数点以下 15 桁 (倍精度) を超えると 5 に切り捨てられます。

4

3 に答える 3

20

探しているものに応じて:

  • FloatそしてDouble- 他のすべての言語の Floats と Doubles から、あなたが知っていて「愛している」ことのほとんど。
  • RationalこれはRatioInteger
  • FixedPoint- このパッケージは、任意のサイズの固定小数点値を提供します。たとえば、64 個の整数ビットと 64 個の小数ビットで表される数値が必要な場合は、 を使用できますFixedPoint6464。1024 整数ビットと 8 小数ビットの数値が必要な場合は、 を使用$(mkFixedPoint 1024 8)して type を生成しFixedPoint1024_8ます。
  • numbers編集:はい、私は上記のパッケージについて知りました-とてもクールです。
于 2013-06-02T00:54:16.930 に答える
1

高精度の /fast/ 浮動小数点計算が必要な場合は、ネイティブの Haskell 型がまだ実装されていないため、FFI と long double を使用する必要がある場合があります ( https://ghc.haskell.org/trac/ghc/ticket/を参照)。 3353)。

于 2015-12-13T14:27:15.890 に答える