`#include <math.h>`

#### rint() Round to nearest integer

(int) does not round values correctly!!!!!

Converting a value with decimal places to an int using (int) will convert ignoring the decimal places completly. If you want a value of say 5.6 to convert to and int of 6 and not 5 then use: (int)rint()

```
double rint (double x)
float rintf (float x)
long double rintl (long double x)
```

The rint() function rounds a double to the nearest integer. It’s output is still a double;

For instance if double d = 5.83

`x = (WORD)d;`

Would produce x=5

`x = (WORD)rint(d);`

Would produce x=6

##### Doing this in simple code without rint()

```
double my_double = 1.500;
my_double = round_d(my_double);
double round_d(double number)
{
return (double)((number >= 0) ? (int)(number + 0.5) : (int)(number - 0.5));
}
```

#### floor() Round downwards to the nearest integer

```
double floor (double x)
float floorf (float x)
long double floorl (long double x)
```

#### ceil() Round upwards to the nearest integer

```
double ceil (double x)
float ceilf (float x)
long double ceill (long double x)
```

Feel free to comment if you can add help to this page or point out issues and solutions you have found. I do not provide support on this site, if you need help with a problem head over to stack overflow.