Java - Decimal Format.parse для возврата двойного значения с указанным количеством десятичных знаков

Я хочу иметь возможность преобразовать строку в Double с учетом количества десятичных знаков в строке формата. Таким образом, "###, ## 0.000" должно дать мне Double до 3 знаков после запятой.

Edit - добавлено больше информации о том, что происходит

Пользователь вводит значение в пользовательском интерфейсе, который вводится в строку. По правилу это значение ограничено 3 десятичными знаками. Базовый код сохраняет значение в базе данных, которое затем используется в вычислениях. Поэтому конечные десятичные разряды приведут к тому, что вычисления будут немного отличаться от ожидаемых.

У меня есть следующий код:

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, кажется, игнорирует строку формата и дает мне полную строку в виде Двойное значение из 1,234567.

Можно ли принудительно использовать DecimalFormat для использования строки формата при синтаксическом анализе? Я что-то упустил?

Ура,

Андез

12
задан Andez 20 January 2011 в 11:12
поделиться