Я программирую физическое моделирование, и каждый элемент моделируемой системы описывается с тремя измерениями (x, y, z), хранящимися в трех long double
. Ну, моя точность была бы довольно точной, и я бы хотел симулировать достаточно обширные системы, такие как солнечная система. Рассматривая Солнце в центре, насколько я могу идти дальше, чтобы сохранить точность выше или равна миллиметру, и какой единиц измерения я должен использовать?Длинный двойной достаточно большой, чтобы хранить расстояние, подобное Солнцу-Плутону, с точностью до миллиметра.
PS:
Я знаю, что солнечная система намного больше, что расстояние ВС-Плутон, но это расстояние минимального размера, который я хотел бы рассмотреть действительно в моем моделировании
https://www.tutorialspoint.com/cprogramming/c_data_types.htm – OldProgrammer
Первое, что вы должны знать, это то, что даже если вы могли бы представить это значение, есть потеря точности наследования из-за того, как компьютеры хранят числа. Кроме того, может быть нецелесообразно использовать такую высокую точность для моделирования, вы должны проанализировать, насколько важна точность. При этом вы можете использовать библиотеки большого числа, чтобы делать вычисления с очень точными числами. Однако для этого потребуется много вычислительной мощности. Подумайте, что представляет собой миллиметр для расстояния от солнца до земли! Это неуместно или нет? –
Солнце-плутовое расстояние около 5.9e15mm. Стандартная двойная точность IEEE754 обеспечивает точность 15-17 десятичных цифр (52 бит двоичных бит). Таким образом, стандартная двойная точность должна быть в порядке, длинный двойной может быть лучше, но длинный двойной - это большая реализация, и множество реализаций предпочитают определять длинные двойные числа так же, как и двойные, поэтому ознакомьтесь с руководством пользователя. – user3528438