Почему в С ++ 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
, но нет. Так почему же так?
Какие-нибудь мысли?
Задача ещё не решена.
Других решений пока нет …