Sometimes, we want to do Gaussian or Banker’s rounding in JavaScript.
In this article, we’ll look at how to do Gaussian or Banker’s rounding in JavaScript.
Do Gaussian or Banker’s Rounding in JavaScript
To do Gaussian or Banker’s rounding in JavaScript, we can create our own function to do the rounding.
For instance, we write:
const isEven = (n) => {
return (0 === (n % 2));
};
const bankersRound = (x) => {
const r = Math.round(x);
return (((((x > 0) ? x : (-x)) % 1) === 0.5) ? ((isEven(r)) ? r : (r - 1)) : r);
};
console.log(bankersRound(1))
console.log(bankersRound(1.5))
console.log(bankersRound(2.5))
We first create the isEven
function to return whether the number n
is an even number.
Then we create the bankersRound
function to round the number.
In the function, we first round the number x
with Math.round
.
Then we check if x
is bigger than 0.
If it is, then we return x
.
Otherwise, we return -x
.
And we check if that number divided by 1 has 0.5 as the remainder.
If it does, we check if the number if even with isEven
.
If it is, we return r
.
Otherwise, we return r — 1
.
If x
ends with .5, then we also return r
.
Therefore, we see the first console log logs 1 and the other 2 logs 2.
Conclusion
To do Gaussian or Banker’s rounding in JavaScript, we can create our own function to do the rounding.