Можно создать дубликат:
Dealing with accuracy problems in floating-point numbersC++ хранения поплавок
Код:
float flt = 78983636; // stores 78983632. as seen in debugger
flt = 79282056; // stores 79282056.
Почему он не в состоянии точно сохранить 1-е значение, но в состоянии на 2 значение больше?
"Larger" имеет мало общего с этим. Пожалуйста, см. Ответ, который я дал другому вопросу (речь идет о Java и удваивается, но применяются те же концепции): http://stackoverflow.com/questions/7811112/why-is-long9223372036854665200d-giving-me-9223372036854665216/7811169#7811169 – NPE
[Что каждый компьютерный ученый должен знать о арифметике с плавающей точкой] (http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) – Joe
Или сделать простой пример: предположим, что вы можете только хранить 'n' как целое число и представляет' 10^n'. Теперь вы можете прекрасно хранить 1000, 10.000 и т. Д., Но будет иметь трудное время, даже считая 5. Подобный принцип для поплавков - он просто немного усложняется, так как мы хотим хранить больше, чем всего лишь 2 ^. – Voo