
1 Dec
2012
1 Dec
'12
4:37 a.m.
On 28/11/12 09:07, Jeff Shaw wrote:
- | Get a Fixed value's Integer representation and resolution. fromFixed :: (HasResolution a) => Fixed a -> (Integer,Integer) fromFixed f@(MkFixed i) = (i, resolution f)
-- | Given an Integer representation and resolution of a Fixed value, -- create a new Fixed value with an arbitrary resolution. toFixed :: (HasResolution a) => (Integer,Integer) -> Fixed a toFixed (i,r0) = withResolution (\r1 -> MkFixed $ (i * r1) `div` r0)
How about... fromFixed f = let r = resolution f in (truncate (f * r),r) toFixed (i,r) = fromRational (i % r) -- Ashley