double — Почему showpoint ограничен шестью значащими цифрами в 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, но нет. Так почему же так?

Какие-нибудь мысли?

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]