Урок 13

Класс NumberFormat

1. Класс NumberFormat

Чтобы получить средства форматирования для национального стандарта по умолчанию, используются следующие методы:
NumberFormat.getlnstance() 
NumberFormat.getNumberlnstance() - идентичен getInstance()
NumberFormat.getCurrencylnstance() 
NumberFormat.getPercentlnstance()

Чтобы получить средства форматирования для других национальных стандартов используются следующие методы:
NumberFormat.getlnstance(Locale locale) 
NumberFormat.getNumberlnstance(Locale locale) - идентичен getInstance(Locale locale)
NumberFormat.getCurrencylnstance(Locale locale) 
NumberFormat.getPercentlnstance(Locale locale)

Пример 1. Использование класса NumberFormat

import java.text.NumberFormat;
import java.util.Locale;

public class NumberFormatDemo1 {
    public static void main(String[] args) {
        float f1 = 123.4567f;
        Locale locFR = new Locale("fr"); // France
        NumberFormat[] nfa = new NumberFormat[6];
        nfa[0] = NumberFormat.getInstance();
        nfa[1] = NumberFormat.getInstance(locFR);
        nfa[2] = NumberFormat.getCurrencyInstance();
        nfa[3] = NumberFormat.getCurrencyInstance(locFR);
        nfa[4] = NumberFormat.getPercentInstance();
        nfa[5] = NumberFormat.getPercentInstance(locFR);
        for (NumberFormat nf : nfa) {
            System.out.println(nf.format(f1));
        }
    }
}

Другие полезные методы NumberFormat класса:

setMaximumFractionDigits(int digits) - устанавливает максимальное количество цифр после десятичной точки в форматируемом объекте. Последняя отображаемая цифра округляется.

setMaximumlntegerDigits(int digits) - устанавливает максимальное количество цифр перед десятичной точкой в форматируемом объекте. Используйте этот метод с предельной осторожностью. Если вы зададите слишком мало цифр, число будет просто усечено, и результат станет совершенно неправильным!

setMinimumFractionDigits(int digits) - устанавливает минимальное количество цифр после десятичной точки в форматируемом объекте. Если количество цифр в дробной части числа меньше минимального, то на экран выводятся замыкающие нули.

setMinimumlntegerDigits(int digits) - устанавливает минимальное количество цифр перед десятичной точкой в форматируемом объекте. Если количество цифр в целой части числа меньше минимального, то на экран выводятся ведущие нули.

getMaximumFractionDigits()

getMinimumFractionDigits()

parse()

setParseIntegerOnly()

Пример 2. Использование класса NumberFormat

import java.text.NumberFormat;

public class NumberFormatDemo2 {
    public static void main(String[] args) {
        double d = 123.45678;
        NumberFormat nf = NumberFormat.getInstance();
        System.out.print("Максимальное количество знаков в дробной части "
                + nf.getMaximumFractionDigits() + ": ");
        System.out.println(nf.format(d) + " ");
        nf.setMaximumFractionDigits(7);
        System.out.print("Максимальное количество знаков в дробной части 7: ");
        System.out.println(nf.format(d) + " ");
        nf.setMaximumIntegerDigits(2);
        System.out.print("Максимальное количество знаков в целой части 2: ");
        System.out.println(nf.format(d) + " ");
    }
}

Пример 3. Использование класса NumberFormat

import java.text.NumberFormat;

public class NumberFormatDemo3 {
    public static void main(String[] args) {
        double d = 123.45678;
        NumberFormat nf = NumberFormat.getInstance();
        System.out.print("Минимальное количество знаков в дробной части "
                + nf.getMinimumFractionDigits() + ": ");
        System.out.println(nf.format(d) + " ");
        nf.setMinimumFractionDigits(7);
        System.out.print("Минимальное количество знаков в дробной части 7: ");
        System.out.println(nf.format(d) + " ");
        nf.setMinimumIntegerDigits(5);
        System.out.print("Минимальное количество знаков в целой части 5: ");
        System.out.println(nf.format(d) + " ");
    }
}

Пример 4. Использование класса NumberFormat

import java.text.NumberFormat;
import java.text.ParseException;

public class NumberFormatDemo4 {
    public static void main(String[] args) {
        NumberFormat nf = NumberFormat.getInstance();
        try {
            System.out.println(nf.parse("1234,567"));
            nf.setParseIntegerOnly(true);
            System.out.println(nf.parse("1234,567"));
        } catch (ParseException pe) {
            System.out.println("parse exc");
        }
    }
}



0 comments
Leave your comment: