nl_tokens: Round x to the nearest integer choosing the even integer if it lies halfway between two .
pl_tokens: function evenRound ( x ) { // There are four cases for numbers with fractional part being .5: // // case |     x     | floor(x) | round(x) | expected | x <> 0 | x % 1 | x & 1 |   example //   1  |  2n + 0.5 |  2n      |  2n + 1  |  2n      |   >    |  0.5  |   0   |  0.5 ->  0 //   2  |  2n + 1.5 |  2n + 1  |  2n + 2  |  2n + 2  |   >    |  0.5  |   1   |  1.5 ->  2 //   3  | -2n - 0.5 | -2n - 1  | -2n      | -2n      |   <    | -0.5  |   0   | -0.5 ->  0 //   4  | -2n - 1.5 | -2n - 2  | -2n - 1  | -2n - 2  |   <    | -0.5  |   1   | -1.5 -> -2 // (where n is a non-negative integer) // // Branch here for cases 1 and 4 if ( ( x > 0 && ( x % 1 ) === + 0.5 && ( x & 1 ) === 0 ) || ( x < 0 && ( x % 1 ) === - 0.5 && ( x & 1 ) === 1 ) ) { return censorNegativeZero ( Math . floor ( x ) ) ; } return censorNegativeZero ( Math . <mask> ( x ) ) ; }