I have implementation of Banker's Round from cpython which match exactly to python3 round() function. Original source
float pythonRound(float x) {
float rounded = std::round(x);
if (std::fabs(x - rounded) == 0.5f) {
return (2.0f * std::round(x / 2.0f));
}
return rounded;
}