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

Convertir número negativo a positivo en C

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

#include <stdio.h>  // printf y scanf
#include <stdlib.h> // abs

int main(void) {
  int negativo = -8;
  printf("El valor absoluto de %d es %d", negativo, abs(negativo));
  // El valor absoluto de -8 es 8
}

La función abs devuelve un entero positivo.

Doble negativo a positivo en C

#include <stdio.h>  // printf
#include <math.h> // fabs

int main(void) {
  double negativo = -40.123;
  printf("El valor absoluto de %f es %f", negativo, fabs(negativo));
  // El valor absoluto de -40.123000 es 40.123000
}

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:

#include <stdio.h>  // printf
#include <math.h> // fabsf

int main(void) {
  float negativo = -1.598;
  printf("El valor absoluto de %f es %f", negativo, fabsf(negativo));
  // El valor absoluto de -1.598000 es 1.598000
}

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 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.

Dejar un comentario

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