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

Resetear GOOJPRT PT-210 MTP-II (Impresora térmica)

El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…

1 mes hace

Proxy Android para impresora térmica ESC POS

Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…

1 mes hace

Android – Servidor web con servicio en segundo plano

En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…

1 mes hace

Cancelar trabajo de impresión con C++

En este post te quiero compartir un código de C++ para listar y cancelar trabajos…

2 meses hace

Copiar bytes de Golang a JavaScript con WebAssembly

Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…

3 meses hace

Imprimir PDF con Ghostscript en Windows de manera programada

Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…

3 meses hace