Question: For Double/Float, there are some rounding errors and loss of precision when converting from decimal to binary representation.
For example, setting float to "6.1" and then printing it out again, you may get a reported value of something like "6.099999904632568359375". 
Which is the better option for checking equality of 2 Double objects :
Using BigDecimal
or
(Math.abs(double1 - double2) < epsilon)

Answer: 
It depends on your usecase. If you work with currency, go for BigDecimal.
Otherwise if you can live with approximations use `Math.abs(double1 - double2) < epsilon`
If you want to test equality you can use `Double.compare()` or `BigDecimal.`

If you need want approximate equality then `Math.abs(d1-d2) < epsilon`