Copyright (C) 2000-2012 |
GNU Info (libc.info)Rounding FunctionsRounding Functions ------------------ The functions listed here perform operations such as rounding and truncation of floating-point values. Some of these functions convert floating point numbers to integer values. They are all declared in `math.h'. You can also convert floating-point numbers to integers simply by casting them to `int'. This discards the fractional part, effectively rounding towards zero. However, this only works if the result can actually be represented as an `int'--for very large numbers, this is impossible. The functions listed here return the result as a `double' instead to get around this problem. - Function: double ceil (double X) - Function: float ceilf (float X) - Function: long double ceill (long double X) These functions round X upwards to the nearest integer, returning that value as a `double'. Thus, `ceil (1.5)' is `2.0'. - Function: double floor (double X) - Function: float floorf (float X) - Function: long double floorl (long double X) These functions round X downwards to the nearest integer, returning that value as a `double'. Thus, `floor (1.5)' is `1.0' and `floor (-1.5)' is `-2.0'. - Function: double trunc (double X) - Function: float truncf (float X) - Function: long double truncl (long double X) The `trunc' functions round X towards zero to the nearest integer (returned in floating-point format). Thus, `trunc (1.5)' is `1.0' and `trunc (-1.5)' is `-1.0'. - Function: double rint (double X) - Function: float rintf (float X) - Function: long double rintl (long double X) These functions round X to an integer value according to the current rounding mode. Note: Floating Point Parameters, for information about the various rounding modes. The default rounding mode is to round to the nearest integer; some machines support other modes, but round-to-nearest is always used unless you explicitly select another. If X was not initially an integer, these functions raise the inexact exception. - Function: double nearbyint (double X) - Function: float nearbyintf (float X) - Function: long double nearbyintl (long double X) These functions return the same value as the `rint' functions, but do not raise the inexact exception if X is not an integer. - Function: double round (double X) - Function: float roundf (float X) - Function: long double roundl (long double X) These functions are similar to `rint', but they round halfway cases away from zero instead of to the nearest even integer. - Function: long int lrint (double X) - Function: long int lrintf (float X) - Function: long int lrintl (long double X) These functions are just like `rint', but they return a `long int' instead of a floating-point number. - Function: long long int llrint (double X) - Function: long long int llrintf (float X) - Function: long long int llrintl (long double X) These functions are just like `rint', but they return a `long long int' instead of a floating-point number. - Function: long int lround (double X) - Function: long int lroundf (float X) - Function: long int lroundl (long double X) These functions are just like `round', but they return a `long int' instead of a floating-point number. - Function: long long int llround (double X) - Function: long long int llroundf (float X) - Function: long long int llroundl (long double X) These functions are just like `round', but they return a `long long int' instead of a floating-point number. - Function: double modf (double VALUE, double *INTEGER-PART) - Function: float modff (float VALUE, float *INTEGER-PART) - Function: long double modfl (long double VALUE, long double *INTEGER-PART) These functions break the argument VALUE into an integer part and a fractional part (between `-1' and `1', exclusive). Their sum equals VALUE. Each of the parts has the same sign as VALUE, and the integer part is always rounded toward zero. `modf' stores the integer part in `*INTEGER-PART', and returns the fractional part. For example, `modf (2.5, &intpart)' returns `0.5' and stores `2.0' into `intpart'. automatically generated by info2www version 1.2.2.9 |