По умолчанию я получаю 4-значную точность и когда я использую setprecision(6)
последние цифры переменной приходят в случайном порядке, как 1/3=0.333369
,
float
имеет около 7 десятичных цифр точности, благодаря использованию 24 двоичных цифр для хранения цифр числа. Что касается выхода, setprecision(6)
делает все, что вы могли просить.
Вероятно, вы теряете точность, например, вычитая два числа с одинаковыми значениями и печатая результат. Быстрое решение состоит в том, чтобы изменить вычисления для использования double
или же long double
, Но чтобы гарантировать точность результата с плавающей запятой, вам нужно понять, как работает FP, и проанализировать, как вычисляется ваша формула.
Увидеть Что каждый компьютерщик должен знать об арифметике с плавающей точкой.
Других решений пока нет …