стандартный формат.

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

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

Пользователь вводит значение в пользовательском интерфейсе, который вводится в строку. Правило - это значение ограничено 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 использовать строку формата при разборе? Я что-то пропустил?

Ура,

Andez

Ответы на вопрос(4)

Ваш ответ на вопрос