fixed point arithmetics in java with fast performance

Karel Bílek picture Karel Bílek · Aug 11, 2012 · Viewed 15.3k times · Source

I need to represent some numbers in Java with perfect precision and fixed number of decimal points after decimal point; after that decimal point, I don't care. (More concretely - money and percentages.)

I used Java's own BigDecimal now, but I found out, that it's really slow and it starts to show in my application.

So I want to solve it with a "regular" integers and a fixed-point arithmetics (long integers have big enough precision for my purposes).

Now, I would think that I am not the first one who has this kind of problem and there would be already a library for that, that already has multiplication/division implemented - but it seems that it isn't.

Now, I very probably can write it myself (and I probably will), but really, am I really the first person that needs this? Isn't there already some library for that?

Answer

marco picture marco · Nov 6, 2015

decimal4j is a Java library for fast fixed precision arithmetic based on longs with support for up to 18 decimal places.

Disclaimer: I am involved in the decimal4j project.