When should I use the “strictfp” keyword in java?

Strictfp ensures that you get exactly the same results from your floating point calculations on every platform. If you don’t use strictfp, the JVM implementation is free to use extra precision where available. From the JLS: Within an FP-strict expression, all intermediate values must be elements of the float value set or the double value … Read more

When should I use double instead of decimal?

I think you’ve summarised the advantages quite well. You are however missing one point. The decimal type is only more accurate at representing base 10 numbers (e.g. those used in currency/financial calculations). In general, the double type is going to offer at least as great precision (someone correct me if I’m wrong) and definitely greater … Read more

Why are some float < integer comparisons four times slower than others?

A comment in the Python source code for float objects acknowledges that: Comparison is pretty much a nightmare This is especially true when comparing a float to an integer, because, unlike floats, integers in Python can be arbitrarily large and are always exact. Trying to cast the integer to a float might lose precision and … Read more

Why are these numbers not equal?

General (language agnostic) reason Since not all numbers can be represented exactly in IEEE floating point arithmetic (the standard that almost all computers use to represent decimal numbers and do math with them), you will not always get what you expected. This is especially true because some values which are simple, finite decimals (such as … Read more