Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Технологии > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 17.10.2010, 15:36   #1
Сырно
Новичок
Джуниор
 
Регистрация: 17.10.2010
Сообщений: 2
По умолчанию Отображение значений переменных типа float и double(Языки Pascal и C)

Уважаемые, очень нужна ваша помощь. Помощь не в конкретном задании, а разобраться в том, почему так происходит. Из постановки моего вопроса видно, что получить ответ на это где-то, кроме форума, очень проблематично. Я пробовал: гуглем, в справках к IDE, спрашивал на "Ответах" - не нашел. Да и по банальной логике я просто не представляю себе, почему так происходит. Это абсурд какой-то. Так что очень прошу не игнорировать, не удалять, а кто знает - помочь, независимо от того, насколько "ламерский" в ваших глазах вопрос

Описаны переменные типа real и double. Первой присвоено, например, произвольное дробное значение: 2.08

В Watche фри паскаля я, наприммер, вижу такое:2.0800000000000001

или если присвоить, например, тоой же переменной значение типа 35.6586878, то в Watch'e я получу вот это:

35.658687800000003

А когда описываю переменную типа extended и присваиваю ей, например значение 35.8675e+1333, тоо пишет "бесконечность" в Watche, если -1333, то 0 или -0 пишет

ну это может из-за тоого, что не влазит в Watch. Но вот все равно этот коэффициент он берет и "извращает": 3.565868779999999999833373191864641 1

ОТКУДА все эти промежуточные цифры? не могу даже представить себе. Да, там есть система точности, округления и т.д. но ЭТ О-то тут причем. это вообще из какой-то неизвестной мне оперы

Помогите, пожалуйста, очень нужно КОНКРЕТНО знать, почему так происходит

В Visual Studio с "минус тысяче триста тридцать третей" степенью то же самое, а с плюсом не компилируется, пишет "Слишком большая константа" Хотя по теории значение "3.56586878e+1333" ой-как вписывается в диапазон(там вроде от десяти в минус четыре тысячи какой-то до десяти в плюс четыре тысячи какой-то) ВООБЩЕ НЕ ПОНИМАЮ, ПОЧЕМУ ТАК. С ума можно сойти, помогите разобраться, пожалуйста
А вот эти промежуточные цифры-то откуда в обычных float'ах, совершенно не представляю. Это вообще за гранью моего понимания
Сырно вне форума   Ответить с цитированием
Старый 17.10.2010, 16:24   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Потому что процессор точно считать не может. Увы.
Уже тут обсуждались перипетии точности вещественных чисел, поищи поиском, там и статьи выкладывали и обьясняли почему.
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Старый 17.10.2010, 16:54   #3
Сырно
Новичок
Джуниор
 
Регистрация: 17.10.2010
Сообщений: 2
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Потому что процессор точно считать не может. Увы.
Уже тут обсуждались перипетии точности вещественных чисел, поищи поиском, там и статьи выкладывали и обьясняли почему.
Спасибо большое, что ответил. А то мне в отчете по лабораторной нужно это подробно описать (специальность просто конкретно разработка программ, так что предмет серьезно изучается), а я вообще сходил с ума, пытаясь догадаться, в чем же тут дело

По каким тэгам искать на форуме, скажи приблоизительно? "Точность вещественных чисел"?

Кстати, что-то я не понял... Вы про процессор компьютера? То есть обычный калькулятор может, а самая высокоразвитая на данный момент вычислительная техника не может? Почему?

Или Вы что-то со средой разработки связанное имеете в виду?

И почему тогда такой большой диапазон в теории указан, если на самом деле диапазон ниже?

Последний раз редактировалось Сырно; 17.10.2010 в 17:02.
Сырно вне форума   Ответить с цитированием
Старый 17.10.2010, 18:37   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Увы точно не помню тему, но вот кажись нашел: http://www.programmersforum.ru/showthread.php?t=15387
В общем начни отсюда свои поиски. удачи )
I'm learning to live...
Stilet вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
сложение 2 переменных типа float? sVasilich Visual C++ 7 22.06.2010 10:55
in Формула типа String out результат типа Double Gypsy Общие вопросы Delphi 3 16.04.2010 10:21
В чём различия между float и double Rafff Общие вопросы C/C++ 6 04.04.2010 10:50
float или double? zgest Общие вопросы C/C++ 10 20.03.2010 16:14


04:01.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.