Здравствуйте, LaptevVV, Вы писали:
LVV>Здравствуйте, Muffinman, Вы писали:
M>>Вопросы:
M>>1. Правильно ли я вовсе понимаю, что FLT_MAX — это наибольшее дробное число типа float, числа до которого можно вместить в float независимо от кол-ва знаков после запятой (до какого-то предела конечно). Или это сложнее? А если сложнее то как?
M>>2. Почему целые числа поменьше FLT_MAX в типе float отображаются без проблем, а вот чтобы отобразить дробные нужно уже в три (точно не помню во сколько, но в много) раз уменьшить FLT_MAX... Что такое тогда FLT_MAX и что все это значит?
LVV>Проблема в размере мантиссы. Для float длина мантиссы, если мне не изменяет память — 23или 24 разряда.А размер порядка 8 бит. Соответственно получается, что значащих ДЕСЯТИЧНЫХ цифр значитеольно меньше, чем 38.
А почему FLT_MAX такой большой? Что эта констатнта вообще значит? Получается, что в тип float влазит огромное число, если только оно целое. Так должно быть? Я просто чего-то не понимаю и нужно еще почитать о floating-point числах? Или где-то допускаю фатальную ошибку?
LVV>long Double позволяет 19-20 десятичных значащих цифр иметь. Если надо больше — надо прогшраммировать класс для работы с длинными числами.
Тоже — напечатав LDBL_MAX то увидит... мм... очень большое число.

Но такие большие числа влазят в этот тип только если они целые. хотя бы один знак после запятой и — надо уже очень сильно это число уменьшать...
Что вззаправду значат константы из float.h для действительных чисел? И потом — они же signed. То есть в float влазит от -FLT_MAX до FLT_MAX? Или все иначе?
Простите за может глупые вопросы, я искал об этом в нете, нашел например нечто такое:
http://docs.sun.com/source/806-3568/ncg_goldberg.html
с чем и ознакомился поверхностно, но вопросы о float.h все равно остались