>>106632198
They are there for backward compatibility reasons, no one uses float and double when any precision or performance is needed. On the other hand, because of the lack of operator overloading even stuff like BigDecimal still has this butt-ugly syntax, so I don't think Java is any good for numerical computing.
var bd1 = new BigDecimal("4.0");
var bd2 = new BigDecimal("2.0");
BigDecimal difference = bd1.subtract(bd2);