2016-12-18 7 views
1

Я программирую физическое моделирование, и каждый элемент моделируемой системы описывается с тремя измерениями (x, y, z), хранящимися в трех long double. Ну, моя точность была бы довольно точной, и я бы хотел симулировать достаточно обширные системы, такие как солнечная система. Рассматривая Солнце в центре, насколько я могу идти дальше, чтобы сохранить точность выше или равна миллиметру, и какой единиц измерения я должен использовать?Длинный двойной достаточно большой, чтобы хранить расстояние, подобное Солнцу-Плутону, с точностью до миллиметра.

PS:
Я знаю, что солнечная система намного больше, что расстояние ВС-Плутон, но это расстояние минимального размера, который я хотел бы рассмотреть действительно в моем моделировании

+0

https://www.tutorialspoint.com/cprogramming/c_data_types.htm – OldProgrammer

+0

Первое, что вы должны знать, это то, что даже если вы могли бы представить это значение, есть потеря точности наследования из-за того, как компьютеры хранят числа. Кроме того, может быть нецелесообразно использовать такую ​​высокую точность для моделирования, вы должны проанализировать, насколько важна точность. При этом вы можете использовать библиотеки большого числа, чтобы делать вычисления с очень точными числами. Однако для этого потребуется много вычислительной мощности. Подумайте, что представляет собой миллиметр для расстояния от солнца до земли! Это неуместно или нет? –

+1

Солнце-плутовое расстояние около 5.9e15mm. Стандартная двойная точность IEEE754 обеспечивает точность 15-17 десятичных цифр (52 бит двоичных бит). Таким образом, стандартная двойная точность должна быть в порядке, длинный двойной может быть лучше, но длинный двойной - это большая реализация, и множество реализаций предпочитают определять длинные двойные числа так же, как и двойные, поэтому ознакомьтесь с руководством пользователя. – user3528438

ответ

6

«Плутон/Среднее расстояние Солнца "составляет 5.9*1012 метров или 5,9 * 10 мм.

Typical double имеет 2 или около 9 * 10 десятичной точности и поэтому может представлять собой расстояние ВС/Плутон точно - с точностью до миллиметра.

Начните с double и сосредоточьтесь на различных расчетах кода, которые могут поставить под угрозу точность. При необходимости используйте long double, но я подозреваю, что double будет работать на вас.