5

私は、32ビット整数の長さを超える数値を処理する関数をHaskellで書いています。これを行うタイプが見つからず、間違った用語を検索しているようです。

精度を損なうことなく、約2^40の長さの数値を保持できる必要があります

例:

addTwo :: Int -> Int -> Int
addTwo a b = a + b

main :: IO()
main = do
    putStrLn ( show ( addTwo 700851475143 1 ) )
4

3 に答える 3

21

無制限の精度の場合は、Integer 型を使用します。プラットフォーム全体で 64 ビットの精度を得るには、Data.Int.Int64 を使用します。どちらも Hoogle で簡単に見つけることができます: http://haskell.org/hoogle/

于 2009-06-15T03:43:14.930 に答える
7

Integer次の代わりにデータ型が必要ですInt

addTwo :: Integer -> Integer -> Integer
于 2009-06-14T22:46:00.840 に答える
0

Integerの代わりに、無制限の精度であるを使用しIntます。

于 2009-06-14T22:46:32.493 に答える