Notably, it's still slightly better than the first code example in the original article, as it takes the rounding bug into account.