По умолчанию точность std :: iostream будет показывать, сколько цифр всего для отображения, а точность по умолчанию равна 6. Итак, поскольку ваш номер состоит из шести цифр до , знак после запятой не будет отображаться после десятичного числа.
Вы можете изменить это поведение с помощью фиксированного манипулятора. «точность» затем изменяется на количество цифр, отображаемых после десятичной дроби, которая, вероятно, соответствует ожидаемому.
Чтобы всегда получать четыре цифры после десятичной дроби, вы можете сделать это:
cout << setprecision(4) << fixed << c;
Однако имейте в виду, что это будет всегда отображать четыре цифры после десятичной дроби, даже если они являются нулями. Нет простого способа получить «точность», означающую самое большее x количество цифр после десятичного знака с помощью std :: iostreams.