Почему showpoint ограничен шестью значащими цифрами в C ++? - PullRequest
0 голосов
/ 29 июня 2018

Почему в C ++ манипулятор showpoint имеет ограничение только в шесть значащих цифр? Если что-то превышает шесть цифр, происходят странные вещи. Вот что привело меня в этот вопрос:

int main()
    {
        double x = 1.345;
        cout << showpoint << x << endl;

        return 0;
    }

Выход: 1,34500

Что вполне нормально, как и ожидалось. Однако, если бы я сделал что-то вроде этого, где я превысил предел в шесть значащих цифр, с выходными данными произошли бы странные вещи:

int main()
    {
        double x = 1.345678;
        cout << showpoint << x << endl;

        return 0;
    }

Выход: 1,34568

Обратите внимание, что 7 отсутствует и, похоже, заменен на 8. Потому что по праву наш x инициализируется с 1.345678. Итак, вместо этого мы должны получить 1.345678, но нет. Так почему же это так?

Есть мысли?

...