Copyright | (c) Ashley Yakeley 2005, 2006, 2009 |
---|---|

License | BSD-style (see the file libraries/base/LICENSE) |

Maintainer | Ashley Yakeley <[email protected]> |

Stability | experimental |

Portability | portable |

Safe Haskell | Trustworthy |

Language | Haskell2010 |

This module defines a "Fixed" type for fixed-precision arithmetic. The parameter to Fixed is any type that's an instance of HasResolution. HasResolution has a single method that gives the resolution of the Fixed type.

This module also contains generalisations of div, mod, and divmod to work with any Real instance.

div' :: (Real a, Integral b) => a -> a -> b Source

generalisation of `div`

to any instance of Real

mod' :: Real a => a -> a -> a Source

generalisation of `mod`

to any instance of Real

divMod' :: (Real a, Integral b) => a -> a -> (b, a) Source

generalisation of `divMod`

to any instance of Real

The type parameter should be an instance of `HasResolution`

.

Enum (Fixed a) | |

Eq (Fixed a) | |

HasResolution a => Fractional (Fixed a) | |

Typeable * a => Data (Fixed a) | |

HasResolution a => Num (Fixed a) | |

Ord (Fixed a) | |

HasResolution a => Read (Fixed a) | |

HasResolution a => Real (Fixed a) | |

HasResolution a => RealFrac (Fixed a) | |

HasResolution a => Show (Fixed a) |

class HasResolution a where Source

resolution :: p a -> Integer Source

showFixed :: HasResolution a => Bool -> Fixed a -> String Source

First arg is whether to chop off trailing zeros

resolution of 1, this works the same as Integer

resolution of 10^-1 = .1

resolution of 10^-2 = .01, useful for many monetary currencies

resolution of 10^-3 = .001

resolution of 10^-6 = .000001

resolution of 10^-9 = .000000001

resolution of 10^-12 = .000000000001

© The University of Glasgow and others

Licensed under a BSD-style license (see top of the page).

https://downloads.haskell.org/~ghc/7.10.3/docs/html/libraries/base-4.8.2.0/Data-Fixed.html