Fmt currency saindo com erro de 1 centavo o.O (Alguem sabe como resolver ? )

tipo, no meu banco o dado esta ssim 345873.2

quando faço System.out.println(valor); é impresso 345873.2

mas quando eu tento <fmt:formatNumber value="${valor}" minFractionDigits=“2” type=“currency”/> o resultado é R$ 345.873,19

o.O … muitos valores aparecem errados por 1 centavo, as vezes para cima, outras vezes para baixo…

Alguem sabe como solucionar ??

js imprimi dentro do java com NumberFormat, e também sai com 1 centavo errado…

é um campo MySQL, decimal (8,2) … e a propriedade da entidade é um Double (já tentei com float, e também da errado)

não tem como vc resolver isso usando Double, pois o número que vc quer imprimir é uma dízima periódica em binário…

pra resolver vc tem que trocar seu campo de Double pra BigDecimal.