Double не выводит 0, как исправить?
А с чего вы взяли, что это ноль? Это именно 1.58871*10-10
Арифметические операции с вещественными числами на компьютере выполняются с определённой погрешностью, она именно так и проявляется.
Никак. Для вещественных чисел значения 0 не существует.
Для работы с вещественными числами необходимо ввести понятие погрешности. тогда
e = 0.0000001;
........................
if Abs(A - B) < e then ............