Saltar al contenido

¿Cómo calcular la constante de Euler o la potencia de Euler en C++?

Esta reseña ha sido probado por especialistas para que tengas la garantía de la veracidad de este escrito.

Solución:

Si puede evitar el uso de un símbolo de preprocesador, debería hacerlo. Te causará problemas cuando menos lo esperes. E es probable que sea una variable.

Solución propuesta:

#include 
const double EulerConstant = std::exp(1.0);

La ventaja de calcular la constante en lugar de asignar un literal de coma flotante es que producirá un resultado con una precisión que coincida con la precisión de la double tipo de datos para su implementación particular de C++. Y elimina la posibilidad de introducir un error al saltar accidentalmente un dígito.

Como se ilustra arriba, declara std::exppor lo que no es necesario que hagas el tuyo propio.

C++20 std::numbers::e

C++20 también ha agregado un e constante a la biblioteca estándar: http://eel.is/c++draft/numbers

Espero que el uso sea como:

#include 
#include 

int main() 
    std::cout << std::numbers::e << std::endl;

Lo probaré cuando llegue el soporte a GCC, GCC 9.1.0 con g++-9 -std=c++2a aun no lo soporta.

La propuesta aceptada describe:

5.0. "Encabezados" [headers]
En la mesa [tab:cpp.library.headers]se debe agregar un nuevo encabezado.

[...]

namespace std {
namespace math { 
template inline constexpr T e_v = unspecified;
inline constexpr double e = e_v;

También hay una std::numbers::pi por supuesto 🙂 Cómo usar la constante PI en C++

Estas constantes utilizan la función de plantilla de variables de C++14: Plantillas de variables de C++14: ¿cuál es su propósito? ¿Algún ejemplo de uso?

En versiones anteriores del borrador, la constante estaba bajo std::math::e: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0631r7.pdf

Sección de Reseñas y Valoraciones

Acuérdate de que tienes la capacidad de añadir un criterio certero .

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *