|
222 / 57 / 18
Регистрация: 13.03.2017
Сообщений: 295
|
|
В какой версии С++ работают переменные long double ?22.08.2023, 10:22. Показов 1284. Ответов 19
Метки нет (Все метки)
Вопрос: какова максимальная разрядность переменных типа long double и в какой версии С++ они работают?
Есть особенности применения этих переменных?
0
|
|
| 22.08.2023, 10:22 | |
|
Ответы с готовыми решениями:
19
Какой спецификатор использовать для корректного вывода типа данных double и long double Разработать Си-программу, содержащую 6 переменных одного типа (long double) и 2 указателя на любые эти переменные Напишите следущие перегруженные функции (long, double, short), которые работают с матрицой из случайных чисел: |
|
6225 / 2926 / 1046
Регистрация: 01.06.2021
Сообщений: 10,838
|
|
| 22.08.2023, 11:03 | |
Сообщение было отмечено Сергей Игнатьев как решение
Решение
Сергей Игнатьев, этот
long double был ещё в старых версиях языка С, например 1989 года. Поэтому полагаю, что в С++ он присутствует с самого начала.Касательно того, что это такое, то это тот же double, но на некоторых устройствах предлагает более высокую точность. Т.е. зависит от железа. Например, может быть так, что long double будет занимать 8 байт, тогда никакой разницы с double, которая тоже столько занимает, не будет. Но long double также в зависимости от устройства может занимать 12 или 16 байт. Тогда макс экспонента согласно IEEE 754 будет не 308, а 4932. Кроме того, будет больше значащих цифр от 18-21 (80-битный случай, который обычно реализован с использованием 12 или 16 байт) до 33-36 (для случая 16 байт) вместо 15-18 (случай 8 байт).Применяется достаточно редко.
1
|
|
|
222 / 57 / 18
Регистрация: 13.03.2017
Сообщений: 295
|
|
| 22.08.2023, 12:18 [ТС] | |
|
Royal_X, спасибо за ответ. Я занимаюсь астрономическими расчетами, где для обеспечения максимальной точности вычисления орбит путем интегрирования уравнений движения по времени требуется очень высокая разрядность действительных переменных. Та же проблема возникает, например при численном решении "задачи трех тел". С некоторыми моими результатами можно ознакомиться в моих темах. Для меня это вопрос не праздный, а имеющий прикладное значение.
Меня прежде всего интересует сколько значащих десятичных цифр можно использовать в мантиссе. например в double используется 16 значащих цифр, а мне нужно минимум 29. Порядок числа может быть от +/- 127. Что бы Вы могли порекомендовать, какую версию или публикацию, буду весьма благодарен.
0
|
|
|
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,818
|
||
| 22.08.2023, 13:09 | ||
|
https://gcc.gnu.org/onlinedocs... Types.html
2
|
||
|
6225 / 2926 / 1046
Регистрация: 01.06.2021
Сообщений: 10,838
|
|
| 22.08.2023, 13:26 | |
|
Сергей Игнатьев, если не подойдёт совет DrOffset, то могу предложить использовать библиотеку boost multiprecision
Сергей Игнатьев, на форуме был случай, когда не хватало точности. Вот, можете смотреть пример, как использовать boost: Вычисление конечных сумм и произведений. Вычислить значение выражения
1
|
|
|
267 / 199 / 30
Регистрация: 26.11.2022
Сообщений: 866
|
|
| 22.08.2023, 13:40 | |
|
Не рекомендую тспользовать такой тип данных если вы не знаете как это будет реализовано и особенно если вашу программу будет кто-то ещё переделывать или использовать - ибо многое зависит от реализации такого типа данных на конкретной системе.
Если нужно получать точные расчёты - то надо использовать https://ru.wikipedia.org/wiki/... 0%BA%D0%B0 и соответствующий софт https://en.wikipedia.org/wiki/... c_software
1
|
|
|
из племени тумба-юбма
|
||
| 22.08.2023, 13:45 | ||
|
и gcc просто поддерживает данный тип?
0
|
||
|
222 / 57 / 18
Регистрация: 13.03.2017
Сообщений: 295
|
|
| 22.08.2023, 13:49 [ТС] | |
|
Спасибо всем, теперь есть над чем думать и пробовать различные варианты реализации.
0
|
|
|
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,692
|
||
| 22.08.2023, 15:16 | ||
|
0
|
||
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 22.08.2023, 15:52 | |
|
0
|
|
|
2674 / 1336 / 480
Регистрация: 08.11.2016
Сообщений: 3,692
|
|
| 22.08.2023, 16:18 | |
|
SmallEvil, дело не в том что там под капотом, матлаб заточен для математического моделирования и научных расчетов, те же матрицы там - это встроенный тип данных. Плюс к тому там много всяких фич для визуализации наборов данных в виде графиков, диа-, гисто- и прочих грамм.
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 22.08.2023, 17:04 | |
|
Annemesski, и как с ним работать ? автоматизировать ? Использовать своим модули на С++, которые будут делать что что МатЛАб не может ?
Я просто не понял при чем тут матлаб при вопросе о С++ ?
1
|
|
|
6225 / 2926 / 1046
Регистрация: 01.06.2021
Сообщений: 10,838
|
|
| 22.08.2023, 17:27 | |
|
Annemesski, вообще, не очень хорошо рекомендовать проприетарный софт, не имеющий никакого отношения к С++. Как минимум, вам нужно купить для ТС лицензию матлаба, чтобы разговор стал предметным. Более того, есть бесплатные Octave и Scilab, которые способны заменить матлаб, не говоря уже о том, что я сомневаюсь, что этот матлаб вообще нужен ТС.
0
|
|
|
6225 / 2926 / 1046
Регистрация: 01.06.2021
Сообщений: 10,838
|
|
| 22.08.2023, 18:31 | |
|
ram876, о точности можно говорит вечно
![]() Тут совершенно верно сказали, что лучший вариант это реализация arbitrary-precision arithmetic. В таком случае, теоретически можно неограниченно увеличивать machine precision, а практически пока не лопнет ОЗУ. Например, в бесплатной СКА Maxima можно вычислять с любой машинной точностью. Коммерческие СКА (например, Mathematica, Maple) пошли еще дальше. Они также реализовали n-digit precision. Т.е. там не нужно гадать, какая нужна машинная точность, чтобы все цифры после запятой были корректны. Пользователь требует от СКА, чтобы n-е количество цифр после запятой были корректны и он это получает, потому что СКА автоматически выбирает такую машинную точность, чтобы все цифры были корректны. Но в n-digit precision есть нюансы: Во-первых, даже самые крутые мат. пакеты не способны автоматически выбрать правильную машинную точность для вычислений некоторых выражений. Например, Многие СКА не смогут автоматически подобрать правильную машинную точность, поэтому будут выдавать ответ 0. Всё дело в том, что для того, чтобы получить как минимум одну корректную цифру "5" в ответе нужно иметь машинную точность 4343 (т.е. программа в своих вычислениях должна использовать 4343 значащих цифр). При машинной точности 4346 мы уже получим 3 корректных цифры после запятой: 5,677 * 10^-4344 Во-вторых, на сегодняшний день не существует ни единого алгоритма, который бы гарантировал корректные n-цифр после запятой. Даже некоторые СКА предупреждают об этом. Например, в документации функции Mathematica N[expr,n] написано, что "attempts to give a result with n‐digit precision" - т.е. мол прога пытается это сделать, но не гарантирует.Могут ли люди найти такой алгоритм, который бы гарантировал корректные n-цифр после запятой во всех случаях? Теоретически да, но сперва придется решить нерешенную zero-equivalence problem
0
|
|
|
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
|
|
| 22.08.2023, 19:05 | |
|
0
|
|
|
6225 / 2926 / 1046
Регистрация: 01.06.2021
Сообщений: 10,838
|
|
| 22.08.2023, 20:00 | |
|
SmallEvil, по этой теме было много статей в arXiv, но нужно искать.
Немного об этом упоминается в статье Википедии "List of undecidable problems", а также можно прочесть статью вики "Richardson's theorem". А целом, zero-equivalence problem является частным случаем Constant problem (проблема постоянных). Только вот если некоторые случаи constant problem имеют решения, например, с помощью алгоритма Риша, то вот zero-equivalence problem является нерешенной проблемой матанализа.
0
|
|
|
Комп_Оратор)
|
||
| 22.08.2023, 20:13 | ||
|
https://www.cyberforum.ru/blog... g3523.html там внизу говорится о том, что порядок равно приоритетных операций в выч-технике, влияет на сохранение значимости, в отличие от идеальной математики. Для ряда случаев, кстати - можно использовать мою программку, чтобы посмотреть как изменяется дерево оптимальных по порядку вычислений в зависимости от конкретных значений переменных формулы. Так что это прожка не только для школьников - LaTeX генерить. Она может понравиться и самым младшеньким. Научным сотрудникам) зы. Но скорость работы в режиме оптимизации крайне низка. Это инструмент для выявления слабых мест расчётной схемы. Однако, можно выяснив интервалы, где дерево "брыкается", для каждого интервала создать специализированные функции, где скобками и порядком следования делается, то что требует дерево. Тут нужно побыть немного друидом)
0
|
||
| 22.08.2023, 21:40 | |
|
0
|
|
| 22.08.2023, 22:16 | |
|
Не по теме: Сергей Игнатьев,
0
|
|
| 22.08.2023, 22:16 | |
|
Помогаю со студенческими работами здесь
20
С какой версии VS появился Double Buffered
Как правильно преобразовать double в long double в программе на Qt Creator? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие.
Ссылка в Linux — это дополнительная запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая. . .
|
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ВВЕДЕНИЕ
Выполняя задание на управление насосной группой заполнения резервуара,. . .
|
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|