Cuál es la mejor manera de separar el doble en dos partes "entero y fracción" en Java

He intentado separar 5.6 (por ejemplo) mediante el siguiente método:

private static double[] method(double d)
{
    int integerPart = 0;
    double fractionPart = 0.0;
    integerPart = (int) d;
    fractionPart = d - integerPart;
    return new double[]{integerPart, fractionPart};
}

Pero lo que obtuve es:

[0] = 5.0
[1] = 0.5999999999999996

¿Tiene alguna sugerencia sobre hacer esto sin convertir el número a cadena?

Respuestas a la pregunta(5)

Su respuesta a la pregunta