Я пытаюсь найти более «естественный» способ использования числа е в C / C ++. Я сосредоточен на вычислении функции е^ П.
Я думаю, что «cmath», по умолчанию, не обеспечивает поддержку как (функции, так и константы). Однако можно включить константы, определенные компилятором, в этом случае M_E
, Это может быть сделано путем включения заявления #define _USE_MATH_DEFINES
,
С другой стороны, е можно определить как константу:
#define E 2.71828182845904523536;
или же
const double EULER = 2.71828182845904523536;
Сказал это. Какой самый «стандартный» способ приближения к этой математической константе? Это какая-то другая библиотека?
Если вы можете избежать использования символа препроцессора, вам следует. Это доставит вам неприятности, когда вы меньше всего этого ожидаете. E
скорее всего, будет переменной.
Предложенное решение:
#include <cmath>
const double EulerConstant = std::exp(1.0);
Преимущество вычисления константы вместо присвоения литерала с плавающей запятой состоит в том, что она будет давать результат с точностью, соответствующей точности double
тип данных для вашей конкретной реализации C ++. И это исключает возможность внесения ошибки, случайно пропуская цифру.
Как показано выше, <cmath>
объявляет std::exp
, так что вам не нужно кататься самостоятельно.
Других решений пока нет …