Prezados,
Eu tenho uma query que utiliza pra comparação uma coluna com dados do tipo ponto flutuante. Até aí sem problemas, usamos aqui para essas comparações o objeto Double e tudo funciona redondo.
Porém, identificamos perdas financeiras pela incapacidade da JVM de interpretar valores decimais como 0.1 em binário, pois este valor convertido para binário é uma dízima não periódica e depois de sucessões de operações em cima deste valor podemos ter perda (ou ganho de valores).
Com isso tivemos que parar de usar o objeto Double (ou o intrínseco double) para usarmos o BigDecimal como alternativa, sempre instanciando o BigDecimal pelo seu construtor que recebe como parâmetro uma String para não cairmos no mesmo problema acima. Ao usar o construtor que recebe um double, o próprio JavaDoc diz que podemos esperar um valor inesperado.
Enfim, eu queria saber se para o EJB podemos comparar valores de ponto flutuante utilizando BigDecimal da mesma forma que utilizamos Double, ou se teríamos que usar um workaround e converter o BigDecimal em Double.
Alguém saberia me responder?