Valor absoluto en C, o convertir número a positivo
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.
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.
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.
#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.
#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.
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
}
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.
El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…
Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…
En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta web usa cookies.