WWW.ИСХОДНИКИ.РУ cpp.sources.ru
java.sources.ru web.sources.ru soft.sources.ru
jdbc.sources.ru asp.sources.ru api.sources.ru

  Форум на исходниках
  C / C++ / Visual C++
  double длиной в 8 байт

СПРОСИТЬ  ОТВЕТИТЬ
профайл | регистрация | faq

Автор Тема:   double длиной в 8 байт
Yuri_64 опубликован 22-11-2001 20:54 MSK   Click Here to See the Profile for Yuri_64   Click Here to Email Yuri_64  
Привет всем!
Некая программа пишет в файл массив чисел. Мне надо эти числа читать из него. Одно число занимает 4 байта, и известно, что все числа порядка 10^-44. Увидев, что число занимает 4 байта, я автоматом стал читать его во float, читается все правильно но в 1 случае из 10 прога вылетает с Invalid Float Operation, причина нашлась довольно скоро: у float'a предел 3*10^-38. Очевидно, что для его хранения нужен double, но он ведь занимает 8 байт! Но тогда как мне прочитать эти числа?
С уважением, Yuri

Flex Ferrum опубликован 22-11-2001 21:28 MSK     Click Here to See the Profile for Flex Ferrum  Click Here to Email Flex Ferrum     
Стоп, а как эти числа в файл записываются? Если, как ты сказал, они занимают 4 байта - то тоже как float, а значит, пороблема в другом (т.к. они подчиняются ограничению на 10^-38). Во-первых: на каком этапе возникает ошибка? На этапе чтения или на этапе обработки? Во-вторых, если на этапе обработки, преобразуй их сразу в double. А в третьих - как ты файл открываешь? Как текстовый поток или как двоичный? Учти, что ifstream открывает по умолчанию как текстовый, и, по этому, преобразует '\n' в '\r\n'. У меня в свое время проблема была именно в этом.

СПРОСИТЬ  ОТВЕТИТЬ
Перейти:


E-mail | WWW.ИСХОДНИКИ.RU

Powered by: Ultimate Bulletin Board, Freeware Version 5.10a
Purchase our Licensed Version- which adds many more features!
© Infopop Corporation (formerly Madrona Park, Inc.), 1998 - 2000.