Почему в 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
, но нет. Так почему же это так?
Есть мысли?