Redondeando en C

Una sencilla forma de rendoear en C es emplear la posibilidades que ofrece la función prinft  de formatear la salida. Así para redondear un número X a k digítos decimales se puede emplear:

printf("%.kf", X)

donde habría que sustituir el valor de k por el número de dígitos que se desean rendodear.

Otra forma que nos permite almacenar el resultado parcialmente sería construirse una función específica para el rendondeo. Para ello empleamos la siguiente expresión:

round(X,k) = floor(10^k X + (1/2)) / 10 ^k

A continuación se muestra un ejemplo de la implementación
#include <stdio.h>
#include <math.h>

double round(double X, int k)
{

return floor( pow(10,k)*X + 0.5) / pow(10,k) ;

}

int main(int argc, char * argv[])
{
double a;
a = 1.235567783;
printf("round(%2.9f) = %.9f\n", a, round(a,2));
printf("round(%2.9f) = %.2f\n", a, a);

return 0;
}

Universidad Autonoma de Madrid, 2004 - 2005