Java - Decimal Format.parse para devolver un valor doble con un número especificado de lugares decimales

Quiero poder convertir una cadena en unDoble dado un número de decimales en una cadena de formato. Entonces "###, ## 0.000" debería darme unDoble a 3 decimales.

Editar: se agregó más información sobre lo que sucede

El usuario ingresa el valor en la interfaz de usuario, que se ingresa en una cadena. La regla es que este valor está limitado a 3 decimales. El código subyacente almacena el valor en la base de datos que luego se utiliza en un cálculo. Por lo tanto, los lugares decimales finales harán que los cálculos salgan ligeramente de lo esperado.

Tengo el siguiente código:

try {
        // output current locale we are running under (this happens to be "nl_BE")
        System.out.println( "Current Locale is " + Locale.getDefault().toString() );

        // number in Central European Format with a format string specified in UK format
        String numberCE = "1,234567"; // 1.234567
        String formatUK = "###,##0.000";

        // do the format
        DecimalFormat formatterUK = new DecimalFormat( formatUK );
        Double valCEWithUKFormat = formatterUK.parse( numberCE ).doubleValue();

        // I want the number to DPs in the format string!!!
        System.out.println( "CE Value     " + numberCE + " in UK format (" + formatUK + ") is "
        + valCEWithUKFormat );

    } catch( ParseException ex ) {
        System.out.println("Cannot parse number");
    }
}

DecimalFormat parece ignorar la cadena de formato y me da la cadena completa comoDoble de 1.234567.

¿Se puede forzar a DecimalFormat a usar la cadena de formato al analizar? ¿Me estoy perdiendo de algo?

Salud,

Andez

Respuestas a la pregunta(4)

Su respuesta a la pregunta