Nathan Wagner
Function is simpler too.
* rint.c
* rint() implementation
*
- * Copyright (c) 1999, repas AEG Automation GmbH
- *
- *
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/port/rint.c,v 1.2 2003/11/29 19:52:13 pgsql Exp $
+ * $PostgreSQL: pgsql/src/port/rint.c,v 1.3 2010/02/05 03:20:56 momjian Exp $
*
*-------------------------------------------------------------------------
*/
double
rint(double x)
{
- double f,
- n = 0.;
-
- f = modf(x, &n);
-
- if (x > 0.)
- {
- if (f > .5)
- n += 1.;
- }
- else if (x < 0.)
- {
- if (f < -.5)
- n -= 1.;
- }
- return n;
+ return (x > 0.0) ? floor(x + 0.5) : ceil(x - 0.5);
}