Ну чтоб не было масса девяток на конце надо писать printf("%.6f", val), например. Вот и вся проблема. В конце концов "круглые" в десятичной системе числа в представлении с плавающей точкой в принципе изначально не круглые, и цепляться к младшим битам смысла нет. Это ж в принципе не точные вычисления, а приблизительные. Не для бухгалтерии. Для бухгалтерии есть рациональные числа и библиотеки типа как по ссылке:
https://en.wikiped …on_arithmetic_software