Arredondamento muito estranho do float

Boa tarde, estou usando maven e vaadin6

mas estou com um problema, quando eu digito por exemplo: 98765432,0000 e jogo o valor pra uma grid ele aceita normal,
mas se digito 987654321,0000 e jogo o valor do campo para uma grid ele transforma para 98765434,0000

usando double fica correto, mas como é um projeto da facul com outras pessoas, teria que refazer todo o programa pra trocar de float pra double… nao compensaria, e nao tem como tambem

fazendo uns testes, se eu jogo o valor como double na grid ele fica normal, mas o problema é que o field onde joga o valor pego da tabela é proprio para float,
e nao aceita uma coisa do tipo setvalue(<valor_em_double>)…
eu teria que pegar o valor em float… e quando converto de double para float acontece a mesma coisa, o 987654321,0000 fica como 98765434,0000

alguem com alguma solução para isso?

Qual o tamanho máximo suportado pelo float? E pelo double?

Tudo bem quanto ao tamanho dos valores, mas quando eu insiro um valor no banco de dados manualmente e dou um parsefloat ele fica normal, mas quando eu vou inserir no banco pelo sistema ele salva com esse arredondamento.

Ex: no banco eu salvo manualmente 987654321.0000, como float (ate ai tudo bem), quando eu pego o valor do banco jogo pro field ou para grid ele fica normal, mas se eu jogo do field pra grid ou vice e versa nao funciona…

Poste seu código