OberonCore https://forum.oberoncore.ru/ |
|
REALly? Я запутался в ДЕЙСТВИТЕЛЬНОсти https://forum.oberoncore.ru/viewtopic.php?f=29&t=6706 |
Страница 1 из 1 |
Автор: | adimetrius [ Вторник, 05 Январь, 2021 15:20 ] |
Заголовок сообщения: | REALly? Я запутался в ДЕЙСТВИТЕЛЬНОсти |
Коллеги, Код: PROCEDURE Really*; VAR s: SHORTREAL; r: REAL; BEGIN s := -0.4523987; r := -0.4523987; Log.Real(s); Log.Char(' '); Log.Real(r) END Really; (* резульат: -0.4523986876010895 -0.4523987 *) Как я понял, -0.4523987 не может быть выражено в 32-разрядном формате. В этом случае я бы ожидал от компилятора сообщения об ошибке. Подобно тому, что если i: INTEGER, то i := MAX(INTEGER) + 1 - это ошибка; если sh: SHORTCHAR, то sh := "Я" - тоже ошибка. Я почти не имею опыта работы с действительными числами. Возможно, я не прав? В Сообщении про действительные литералы сказано: Language Report, 3. Vocabulary and representation писал(а): A real number is always of type REAL.
|
Автор: | Trurl [ Вторник, 05 Январь, 2021 15:39 ] |
Заголовок сообщения: | Re: REALly? Я запутался в ДЕЙСТВИТЕЛЬНОсти |
Не надо тут никаких сообщений. |
Автор: | Иван Денисов [ Вторник, 05 Январь, 2021 17:30 ] |
Заголовок сообщения: | Re: REALly? Я запутался в ДЕЙСТВИТЕЛЬНОсти |
Ну да, тут понятно, что все эти десятичные константы округляются в двоичном формате. Это обычно расчётчики точно понимают. А то можно будет указывать константы только в двоичном виде ![]() |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |