突然发现的基础有关问题,关于double的

突然发现的基础问题,关于double的doubled1123.12d1-100.00System.out.println(d1)运行结果是23.12000

突然发现的基础问题,关于double的
double   d1=123.12;
d1-=100.00;
System.out.println(d1);

运行结果是
23.120000000000005
why?

[解决办法]
使用BigDecimal