Rounds a real number up to an integer value #include <math.h> double ceil ( double x ); float ceilf ( float x ); (C99) long double ceill ( long double x ); (C99) The ceil( ) function returns the smallest integer that is greater than or equal to its argument. However, the function does not have an integer type; it returns an integer value, but with a floating-point type. Example
/* Amount due = unit price * count * VAT, rounded up to the next cent */
div_t total = { 0, 0 };
int count = 17;
int price = 9999; // 9999 cents is $99.99
double vat_rate = 0.055; // Value-added tax of 5.5%
total = div( (int)ceil( (count * price) * (1 + vat_rate)), 100);
printf("Total due: $%d.%2d\n", total.quot, total.rem);
This code produces the following output: Total due: $1793.33 See Alsofloor( ), floorf( ), and floorl( ), round( ), roundf( ), and roundl( ); the C99 rounding functions that return floating-point types: trunc( ), rint( ), nearbyint( ), nextafter( ), nexttoward( ); the C99 rounding functions that return integer types: lrint( ), lround( ), llrint( ), llround( ); the fesetround( ) and fegetround( ) functions, which operate on the C99 floating-point environment. |