On Jul 12, 2007, at 4:40 , Bayley, Alistair wrote:
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Simon Michael
Is there a type or library out there that's good for
representing money and
other quantities while avoiding rounding errors ?
I think Data.Fixed would be a good choice:
http://www.haskell.org/ghc/docs/latest/html/libraries/base/Data-
Fixed.ht
ml
I don't know /exactly/ how you'd go about adding a Money data type; I
guess you'd have something like:
data E2 = E2
instance HasResolution E2 where resolution _ = 100
type Money = Fixed E2
I was playing with that when your message came in:
mress:5003 Z$ cat foo.hs
import Data.Fixed
data E2 = E2
instance HasResolution E2 where
resolution _ = 100
type Money = Fixed E2
mress:5004 Z$ ghci foo.hs
___ ___ _
/ _ \ /\ /\/ __(_)
/ /_\// /_/ / / | | GHC Interactive, version 6.7.20070322,
for Haskell 98.
/ /_\\/ __ / /___| | http://www.haskell.org/ghc/
\____/\/ /_/\____/|_| Type :? for help.
Loading package base ... linking ... done.
[1 of 1] Compiling Main ( foo.hs, interpreted )
Ok, modules loaded: Main.
*Main> :m +Data.List
*Main Data.List> let l = [1.25 :: Money,2.00,4.46,12.80,1.15,6.00]
in sum l / genericLength l
4.61
That what you want?
--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] [EMAIL PROTECTED]
system administrator [openafs,heimdal,too many hats] [EMAIL PROTECTED]
electrical and computer engineering, carnegie mellon university KF8NH
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe