«Насколько я понимаю, после запятой в типе double может быть не больше 15 знаков после запятой.» — это откуда Вы взяли?
Во первых в floating-point арифметике нет различий между «до запятой» и «после запятой» — всё переносится в «после запятой», даже та «1» или «9», что была у вас в целой части (это объясняет, случай с sqrt(2) (15-й знак был до запятой), а sqrt(98) — просто последний знак =0 ).
Во-вторых не забываем, что арифметика двоичная, а не десятичная, так что ровно 15 знаков не всегда будет, могут быть ещё чудеса. Ну и IEEE 754.