If you just want to make sure it ends up with a whole number (not a fraction), use round(), floor() or ceil(), to round to the nearest, round down, or round up, respectively. For example:
round((positioning * 2) + if (r <= ceil (N * .2), (ceil (N * .2) + 1 - r) * 7, 0) (position * 2) + if (r <= ceil (n * .2), (ceil (n * .2) + 1 - r) * 7, 0) + if (r> 1.0, n/100 * 25))
Your formula has a couple of other issues. "positioning" is not a valid variable; it should just be "position". Also, there seems to be a missing "+" (might be some other operator, but + seems logical, I guess):
(position * 2) + if (r <= ceil (N * .2), (ceil (N * .2) + 1 - r) * 7, 0) + (position * 2) + if (r <= ceil (n * .2), (ceil (n * .2) + 1 - r) * 7, 0) + if (r> 1.0, n/100 * 25)
^
here
Also, there's a Unicode character in there called "a zero width space". Being "zero width", it's actually basically invisible, but it's there and it causes the formula to error. It's right between the open parenthesis and the "c" in "ceil", here:
(position * 2) + if (r <= ceil (N * .2), (ceil (N * .2) + 1 - r) * 7, 0) + (position * 2) + if (r <= ceil (n * .2), (ceil (n * .2) + 1 - r) * 7, 0) + if (r> 1.0, n/100 * 25)
^^
here
Here's your original formula with the + added and the "zero width space" removed:
(position * 2) + if (r <= ceil (N * .2), (ceil (N * .2) + 1 - r) * 7, 0) + (position * 2) + if (r <= ceil (n * .2), (ceil (n * .2) + 1 - r) * 7, 0) + if (r> 1.0, n/100 * 25)
If you want to round everything:
round((position * 2) + if (r <= ceil (N * .2), (ceil (N * .2) + 1 - r) * 7, 0) + (position * 2) + if (r <= ceil (n * .2), (ceil (n * .2) + 1 - r) * 7, 0) + if (r> 1.0, n/100 * 25))