You did the math, but used the wrong basebase. 0.58 as a binary floating point number is slightly less than the decimal value, since it cannot be represented exactly:
Apparently they always round down the computed result to two decimal digits (i.e. to the next integer percentage), probably to prevent this page from showing an incorrect "100%" when you're at e.g. 19999/20000
.