Почему для финансовых расчетов используют BigDecimal, а не float или double?

BigDecimaldoublefloatJavaфинансовые расчеты