Another take on decimal data types

Daniel Kozak kozzi11 at gmail.com
Mon Jan 8 22:46:27 UTC 2018


Wow awesome, it would be nice if you could add it as a dub package (
http://code.dlang.org/publish) to dub repository (http://code.dlang.org)

On Mon, Jan 8, 2018 at 11:16 PM, rumbu via Digitalmars-d-announce <
digitalmars-d-announce at puremagic.com> wrote:

> This is my first D finalized project (+16k loc).
>
> I know that there are other two projects intended to provide a decimal
> data type for D, but I consider mine the most complete and most compliant
> to the standards (at least until now).
>
> There are two years of since I'm working on it (and learning D in the same
> time), but I concentrated most of the efforts in the last two months.
>
> It was a nice exercise because I was happy to remember the math I learn
> through my college years (trigonometry, logarithms, Taylor series,
> derivatives, etc). Unfortunately I'm not using the same math during my
> day-to day job.
>
> Maybe in another post I will share my struggles I encountered during the
> development (plenty of). But a big thank you goes to Rainer Schuetze:
> without Visual Studio and without the integrated debugger this project was
> impossible to maintain.
>
> Now on topic:
>
> - fully IEEE-754-2008 compliant;
> - one flat file;
> - using Intel's binary decimal enconding;
> - three decimal data types: decimal32, decimal64 and decimal128
> - all D operators supported for all numeric types (left and right side
> integrals, floats, chars);
> - conversion supported from/to integrals, floats, bools, chars
> - conversion to/from other decimal formats (Microsoft Currency, Microsoft
> Decimal, IBM Densely Packed Decimal)
> - all std.math functions implemented (even logarithms and trigonometry);
> - all format specifiers implemented (%f, %e, %g, %a);
> - integrated with phobos format and conversion functions (to, format,
> writef);
> - thread local precision (from 1 to 34 decimal digits);
> - new rounding mode - Europe's most used - tiesToAway;
> - alternate exception handling (through flags);
> - minimal dependencies (some traits and some floating point functions);
> - comprehensive documentation;
>
> Source code: https://github.com/rumbu13/decimal/blob/master/src/decimal.d
>
> Documentation: http://rumbu13.github.io/decimal/doc/decimal.html
>
> The project is more than in an alpha state, all operations were tested but
> not exhaustively.
>
> What's next:
> - more tests;
> - benchmarks;
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d-announce/attachments/20180108/79e0d011/attachment.html>


More information about the Digitalmars-d-announce mailing list