Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Haskell 64 bit numerical type

I am writing a function in Haskell that deals with numbers beyond the length of a 32 bit int. I cannot find the type to do this and I seem to be searching for the wrong terms.

It needs to be able to hold numbers with the length of about 2^40 without any loss of precision

Example:

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

main :: IO()
main = do
    putStrLn ( show ( addTwo 700851475143 1 ) )
like image 579
Yacoby Avatar asked Jun 14 '09 22:06

Yacoby


2 Answers

For unbounded precision, use the Integer type. For 64 bits of precision, across platforms, use Data.Int.Int64. Both will be easy to find with Hoogle: http://haskell.org/hoogle/

like image 99
Don Stewart Avatar answered Sep 30 '22 11:09

Don Stewart


You want the Integer data type instead of Int:

addTwo :: Integer -> Integer -> Integer
like image 26
Samir Talwar Avatar answered Sep 30 '22 10:09

Samir Talwar