Pi es un número que sirve para muchas cosas de matemáticas que tienen que ver con círculos o esferas. Hoy veremos cómo obtener esa constante en el lenguaje C, porque a veces viene definida pero en otras ocasiones nosotros debemos definirla.

Pi en C

Bueno, esta constante viene definida en el encabezado math.h pero solamente en algunas implementaciones; es decir no podemos confiar en que esté disponible o definida través de los distintos sistemas operativos.

Utilizando math.h o definiendo la nuestra

Este método es el que recomiendo, pues utilizamos algunas comparaciones en tiempos de precompilación. Lo que hacemos es comprobar si no existe la constante M_PI dentro de la librería math.h; en caso de que no, entonces la definimos utilizando macros.

#include <math.h>
#ifndef MPI
#define MPI 3.14159265358979323846
#endif

Así de simple: de ese modo hacemos que nuestro código sea portable. Por cierto, no sé por qué se llama M_PI, supongo que por Math Pi o algo así. El punto es que lo llamamos así porque puede que ese sea su nombre en el encabezado math.h.

Definiendo pi como constante

También podemos definir a pi como una constante global sin usar define, definiendo su valor globalmente:

double PI = 3.14159265358979323846;

Más tarde podemos usarla como cualquier otra variable (o mejor dicho, constante).

Pi en C utilizando coseno inverso

No sé mucho de matemáticas pero sé que el valor de Pi se puede obtener al calcular el coseno inverso de -1; por lo tanto podemos utilizar la función del coseno inverso (llamada acos) y recuperar el valor que regresa al calcular el coseno de -1.

<span class="crayon-t">double</span><span class="crayon-h"> </span><span class="crayon-v">PI</span><span class="crayon-h"> </span><span class="crayon-o">=</span><span class="crayon-h"> </span><span class="crayon-e">acos</span><span class="crayon-sy">(</span><span class="crayon-o">-</span><span class="crayon-cn">1.0</span><span class="crayon-sy">)</span><span class="crayon-sy">;</span>

No olvides que para que la función esté disponible debes incluir a math.h.

Sobre la precisión

Aunque no definimos a PI con mucha precisión (pusimos 20 decimales) esto no hará que nuestros cálculos fallen.

De hecho se dice que con una precisión de 39 decimales se podría calcular la circunferencia de todo el universo con una precisión menor al diámetro de un átomo de hidrógeno; así que con 20 está bien para nosotros.

Fuente aquí.

Conclusión

Estas son las maneras de definir al número Pi en c. Recordemos que nunca debemos confiar en que las constantes estarán definidas.

Las formas que usemos dependerán de nuestros programas; si es uno simple entonces lo definimos como una constante dentro de nuestras funciones; si no, tal vez como una constante global en un encabezado.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Creador de credenciales web – Aplicación gratuita

Hoy te voy a presentar un creador de credenciales que acabo de programar y que…

2 días hace

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

1 semana hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

1 semana hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

1 semana hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

1 semana hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

1 semana hace

Esta web usa cookies.