A Haskell library for using Dozenal (Duodecimal - Base 12) numbers.
dozenal
A Haskell library for using Dozenal (Duodecimal - Base 12) numbers.
Usage
Create number using: (Dozenal String)
Example: Dozenal "1X"
Permitted digits: [0..9] ++ "X" ++ "E"
Dozenal is an instance of the Num class, so you can do numerical computations with it.
Example:
(Dozenal "10")^2
(Dozenal "10") + (Dozenal "10")
Limitations
Internally, the string is converted to decimal and calculations proceed in decimal. Once calculations are done, the decimal digit is converted back to dozenal. This means that, you may run into an error if the base conversion is not possible. Converting from a higher base to a lower base can sometimes not be possible (usually only when there are floting point numbers or numbers after the dit - decimal point equivalent in dozenal).
Also, the current implementation uses only integers, and does not support floating point numbers.