Tengo el siguiente problema, obtengo el importe como un String, necesito pasarlo a céntimos y al multiplicar por 100 obtengo un valor incorrecto al inicial, lo redondea. ¿Por qué ocurre esto y cuál sería la forma más elegante de evitarlo?
Ejemplo:
String importe = "315.84";
Double importeVal = Double.valueOf(importe);
<-- Aquí se obtiene bien el valor 315.84
importeVal = importeVal * 100;
<-- Aquí obtenemos el valor 31583.999999999996
importe = String.valueOf(importeVal);
<- Se convierte a string el valor 31583.999999999996
System.out.println(importe);
<-- Se pinta 31583.999999999996