Here you can find the source of equals(BigDecimal bd1, BigDecimal bd2)
public static boolean equals(BigDecimal bd1, BigDecimal bd2)
//package com.java2s; //License from project: Open Source License import java.math.BigDecimal; public class Main { private static final double MIN = 0.0000001; public static boolean equals(BigDecimal bd1, BigDecimal bd2) { return isZero(doubleValue(bd1) - doubleValue(bd2)); }/*from w w w. j a v a2 s . c om*/ public static boolean isZero(double d) { return Math.abs(d) <= MIN; } public static boolean isZero(float f) { return Math.abs(f) <= MIN; } public static boolean isZero(BigDecimal bd) { if (bd == null) { return true; } return isZero(bd.doubleValue()); } public static boolean isZero(Integer bd) { if (bd == null) { return true; } return isZero(bd.doubleValue()); } public static double doubleValue(BigDecimal bd) { if (bd == null) { return 0.0; } return bd.doubleValue(); } public static double doubleValue(Integer bd) { if (bd == null) { return 0.0; } return bd.doubleValue(); } }