стандартный формат.
у иметь возможность преобразовать строку вдвойной задано количество знаков после запятой в строке формата. Так что "###, ## 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