Estava olhando a discussão, e gostaria de saber como calcula esta representação binária.
 

Cezar,

note que nem todos estes numeros nao possuem representacao binaria perfeita:

4.96 = 100.11110101110000101000111101011100001010001111010111 ( =
4.9599999999999999383484909024105265228684473934444104163875499178081282073594053273515617319174792...)
4.97 = 100.1111100001010001111010111000010100011110101110000101 ( =
4.9699999999999999522262787102249791917074708051575354490781853972972047883147623040656351019280470...)
5.02 = 101.0000010100011110101110000101000111101011100001010001111011
(exatamente)
5.03 = 101.0000011110101110000101000111101011100001010001111010111 (exatamente)

Por fim, como a matematica e' feita na representacao binaria (que
neste caso e' imperfeita), a gente nao pode esperar os mesmos
resultados.

Por isso a minha sugestao de usar o all.equal(), que permite o uso de
tolerancia para compensar estes problemas na representacao binaria....