Skip to content
This repository has been archived by the owner on Dec 8, 2020. It is now read-only.

Latest commit

 

History

History
47 lines (33 loc) · 1.78 KB

README.md

File metadata and controls

47 lines (33 loc) · 1.78 KB

FixedPointDecimals

Travis Build Status Appveyor Build Status coveralls codecov.io

Provides the fixed-point decimal type FixedDecimal allowing for exact representations of decimal numbers. These numbers are useful in financial calculations where interactions between decimal numbers are required to be exact.

This library defines the type FixedDecimal{T <: Integer, f} as a subtype of Real. The parameter T is the underlying machine representation and f is the number of decimal places which can be stored.

For example, FixedDecimal{Int8, 2} allows you to a decimal number with up to 2 fractional digits. All FixedDecimal{Int8, 2} numbers x must satisfy

-1.28 = -128/10² ≤ x ≤ 127/10² = 1.27

because the range of Int8 is from -128 to 127.

In general FixedDecimal{T <: Integer, f} numbers y must satisfy:

typemin(T)/10ᶠ ≤ y ≤ typemax(T)/10ᶠ

Usage

julia> using FixedPointDecimals

julia> 2.2 / 10
0.22000000000000003

julia> FixedDecimal{Int,2}(2.2) / 10
FixedDecimal{Int64,2}(0.22)

julia> 0.1 + 0.2
0.30000000000000004

julia> FixedDecimal{Int,1}(0.1) + FixedDecimal{Int,1}(0.2)
FixedDecimal{Int64,1}(0.3)