| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /* +++Date last modified: 05-Jul-1997 */
- /*
- ** rounding macros by Dave Knapp, Thad Smith, Jon Strayer, & Bob Stout
- */
- #ifndef ROUND__H
- #define ROUND__H
- #include <math.h>
- #if defined(__cplusplus) && __cplusplus
- /*
- ** Safe C++ inline versions
- */
- /* round to integer */
- inline int iround(double x)
- {
- return (int)floor(x + 0.5);
- }
- /* round number n to d decimal points */
- inline double fround(double n, unsigned d)
- {
- return floor(n * pow(10., d) + .5) / pow(10., d);
- }
- #else
- /*
- ** NOTE: These C macro versions are unsafe since arguments are referenced
- ** more than once.
- **
- ** Avoid using these with expression arguments to be safe.
- */
- /*
- ** round to integer
- */
- #define iround(x) floor((x) + 0.5)
- /*
- ** round number n to d decimal points
- */
- #define fround(n,d) (floor((n)*pow(10.,(d))+.5)/pow(10.,(d)))
- #endif
- #endif /* ROUND__H */
|