Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
java / лекции / лекция 9.ppt
Скачиваний:
101
Добавлен:
17.04.2018
Размер:
187.39 Кб
Скачать

Формат вывода чисел

Для форматирования числа необходимо:

Получить объект регионального стандарта

Получить объект форматирования

Применить объект форматирования для форматирования числа или его разбора

Форматирование числа

Для форматирования чисел используется класс java.text.NumberFormat.

Locale locale = new Locale("de", "DE");

NumberFormat currFormat = NumberFormat.getInstance(locale);

double amount = 123456.78;

System.out.println(currFormat.format(currF

ormat));

Результат:

123,456.78

Форматирование денежных единиц

Locale locale = new Locale("de", "DE");

NumberFormat currFormat = NumberFormat.getCurrencyInstance(locale);

double amount = 123456.78;

System.out.println(currFormat.format(currFo

rmat));

Результат:

123,456.78 €

Преобразование строки в число

TextField input;

. . .

NumberFormat fmt =

NumberFormat.getNumberInstance();

Number input = fmt.parse(input.getText().trim());

double x = input.doubleValue();

В случае ошибки преобразование генерируется исключение ParseException

Класс NumberFormat

static NumberFormat getCurrencyInstance(Locale inLocale)

static NumberFormat getInstance(Locale inLocale)

static NumberFormat getIntegerInstance(Locale inLocale)

static NumberFormat getNumberInstance(Locale inLocale)

static NumberFormat getPercentInstance(Locale inLocale)

String format(double number)

String format(long number)

Денежные единицы

Не решение проблемы:

NumberFormat dollarFormatter = NumberFormat.getNumberInstance(Locale.US);

NumberFormat euroFormatter = NumberFormat.getNumberInstance(Locale.GERMANY);

Так как вывод 100 000 будет: $100,000.00 100.000,00€

Денежные единицы

NumberFormat euroFormatter = NumberFormat.getNumberInstance();

euroFormatter.setCurrency(Currency.getInstance("EUR")

);

NumberFormat dollarFormatter = NumberFormat.getNumberInstance();

dollarFormatter.setCurrency(Currency.getInstance("USD

"));

Коды валют (ISO-4217):

USD — доллар США

EUR — евро

GBP — Английский Фунт

RUB — Российский рубль

Дата и время

Особенности форматирования даты и времени:

Названия месяцев должны быть представлены на местном языке

Последовательность указания год-месяц-день различаются

Для отображения дат может быть использован не григорианский календарь

Следует учитывать часовые пояса

Форматирование даты и времени

DateFormat fmt = DateFormat.getDateInstance(dateStyle, locale);

DateFormat fmt = DateFormat.getTimeInstance(timeStyle, locale);

DateFormat fmt = DateFormat.getDateTimeInstance(dateStyle, timeStyle, locale);

DateFormat.DEFAULT

DateFormat.FULL (Friday, April 4, 2008 10:30:00 am

PDT)

DateFormat.LONG (April 4, 2008 10:30:00 pm PDT)

DateFormat.MEDIUM (Apr 4, 2008 10:30:00 pm) DateFormat.SHORT (4/3/08 10:30:00pm)

Форматирование и анализ даты/времени

Форматирование даты/времени:

Date now = new Date();

String s = fmt.format(now); System.out.println(s);

Анализ даты/времени:

TextField inputText;

. . .

DateFormat fmt = DateFormat.getDateInstance(DateFormat.MEDIUM);

Date input = fmt.parse(inputText.getText().trim());

В случае ошибки преобразования генерируется ParseException

Соседние файлы в папке лекции