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

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

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.