double型とlong double型の違いが良く分かりません

double型で15桁の数字の加算を繰り返していて
途中から1の位の値が正しく計算されなくなったんですが
long double型に変えたら正確に計算されるようになりました
何が原因なんでしょう