Decimal: Decimal numbers with variable precision

[ bsd3, library, math ] [ Propose Tags ] [ Report a vulnerability ]

A decimal number has an integer mantissa and a negative exponent. The exponent can be interpreted as the number of decimal places in the value.


[Skip to Readme]

Modules

[Index] [Quick Jump]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

Versions [RSS] 0.1.0, 0.2.0, 0.2.1, 0.2.2, 0.2.3, 0.3.1, 0.4.1, 0.4.2, 0.5.1, 0.5.2
Change log changelog.md
Dependencies base (>=4 && <5), deepseq [details]
Tested with ghc ==8.2.2, ghc ==8.10.4
License BSD-3-Clause
Copyright Paul Johnson, 2013, 2018, 2021.
Author Paul Johnson
Maintainer paul@cogito.org.uk
Category Math
Home page https://github.com/PaulJohnson/Haskell-Decimal
Uploaded by PaulJohnson at 2021-03-14T09:42:16Z
Distributions Arch:0.5.2, Debian:0.5.1, Fedora:0.5.2, LTSHaskell:0.5.2, NixOS:0.5.2, Stackage:0.5.2, openSUSE:0.5.2
Reverse Dependencies 31 direct, 17 indirect [details]
Downloads 22932 total (104 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2021-03-14 [all 1 reports]

Readme for Decimal-0.5.2

[back to package description]

Haskell-Decimal

Fixed-precision decimal numbers, where the precision is carried with the numbers at run-time.

The Decimal type is mainly intended for doing financial arithmetic where the number of decimal places may not be known at compile time (e.g. for a program that handles both Yen and Dollars) and the application must not drop pennies on the floor. For instance if you have to divide $10 between three people then one of them has to get $3.34.

The number of decimal places in a value is represented as a Word8, allowing for up to 255 decimal places. Functions preserve precision. Addition and subtraction operators return a result with the precision of the most precise argument, so 2.3 + 5.678 = 7.978. Multiplication and division use whatever precision is necessary up to 255 decimal places.

QuickCheck Specification

Data.Decimal includes a set of QuickCheck properties which act as both tests and a formal specification. To run the tests do:

cabal configure --enable-tests cabal build cabal test

or

stack test