En este post veremos cómo convertir un número negativo (ya sea entero o flotante) a positivo en C. Incluso si el número ya es positivo, no pasará nada ni habrá errores al convertirlo utilizando la función abs, fabs y fabsf.

Valor absoluto en C, o convertir número a positivo

Valor absoluto en C, o convertir número a positivo

Para esto, usaremos una función matemática (o lo que sea) llamada valor absoluto, que devuelve la distancia entre dos puntos de una recta; sin importar si uno de ellos es negativo, porque la distancia siempre es positiva.

La función para el valor absoluto

Dependiendo de la precisión y el tipo de dato, necesitarás una función diferente. Si únicamente quieres saber el valor absoluto de un entero, incluye a:

#include <stdlib.h>

Y llama a abs(valor); para obtener su representación positiva. Esta función es llamada abs, que quiere decir algo así como absolute value.

En caso de que requieras más precisión, por ejemplo de un tipo double o float, usa las funciones fabs y fabsf respectivamente, las cuales están definidas en math.h y puedes incluir así:

#include <math.h>

Así de simple es. Ahora veamos algunos ejemplos.

Convertir entero negativo a positivo en C

La función abs devuelve un entero positivo.

Doble negativo a positivo en C

En este caso usamos fabs, el cual recibe y devuelve un double.

Flotante negativo a positivo en C

Para una variable de tipo float usamos fabsf como se ve en el código:

Conclusiones

Me parece que también existe la función fabsl, la cual trabaja con el tipo long double(lo vi aquí).

Existen muchas funciones debido a los tipos de datos; cada una tiene una precisión distinta que servirá de acuerdo a nuestras necesidades.

En la mayoría de casos usaremos abs o fabsf para ejercicios comunes. Recuerda que el objetivo de este post era explicar cómo convertir un número negativo a positivo, y ya vimos cómo hacerlo sin que importe el tipo de dato.

Estoy interesado en trabajar contigo de manera remota para llevar tu idea a la realidad, formar parte de tu equipo de desarrolladores, ayudarte con tu tarea, dar asesorías y todo lo relacionado con tecnología y programación. Contáctame para más información
No te vayas sin seguirme en Twitter, Facebook y GitHub
Si tienes dudas déjalas en un comentario, pero asegúrate de seguirme antes como agradecimiento (no te cuesta nada y me ayudas mucho)


parzibyte

He trabajado por más de 4 años en el desarrollo de software con experiencia en Java, PHP, JavaScript, HTML, Node.JS, Python, Android y Go. También he trabajado con bases de datos SQL como MySQL y SQLite, así como con bases de datos NoSQL usando MongoDB. Soy bueno utilizando algunos frameworks y herramientas como Firebase, jQuery, AngularJS, VueJS, CodeIgniter, Laravel, BulmaCSS, Bootstrap y Electron. Otros términos que conozco son: Arduino, GraphQL, API's, REST, AJAX, PouchDB, CouchDB, Experiencia de usuario, buenas prácticas de programación, Webpack, NPM, Administración de servidores y programación de scripts La plataforma en la que tengo más experiencia es la web, pero en mis ratos libres realizo unos pequeños ejercicios en C# y C. Estoy aquí para ayudarte a resolver tus problemas de programación y depuración :-)

Deja un comentario

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

This site uses Akismet to reduce spam. Learn how your comment data is processed.

A %d blogueros les gusta esto: