Класс NumberFormat и его методы в Java
Класс NumberFormat языка Java используется для форматирования чисел.
Чтобы получить объект класса для форматирования в национальном стандарте по умолчанию, используются следующие методы:
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)
Рассмотрим пример использования класса NumberFormat:
import java.text.NumberFormat;
import java.util.Locale;
public class NumberFormatExample1 {
public static void main(String[] args) {
double number = 123.4567;
Locale locFR = new Locale("fr");
NumberFormat numberFormat1 = NumberFormat.getInstance();
System.out.println("Число в текущей локали: " + numberFormat1.format(number));
NumberFormat numberFormat2 = NumberFormat.getInstance(locFR);
System.out.println("Число во французской локали: " + numberFormat2.format(number));
NumberFormat numberFormat3 = NumberFormat.getCurrencyInstance();
System.out.println("Денежная единица в текущей локали: " + numberFormat3.format(number));
NumberFormat numberFormat4 = NumberFormat.getCurrencyInstance(locFR);
System.out.println("Денежная единица во французской локали: " + numberFormat4.format(number));
NumberFormat numberFormat5 = NumberFormat.getPercentInstance();
System.out.println("Процент в текущей локали: " + numberFormat5.format(number));
NumberFormat numberFormat6 = NumberFormat.getPercentInstance(locFR);
System.out.println("Процент во французской локали: " + numberFormat6.format(number));
}
}
Другие полезные методы NumberFormat
класса:
setMaximumFractionDigits(int digits) - устанавливает максимальное количество цифр после десятичной точки в форматируемом объекте. Последняя отображаемая цифра округляется.
setMaximumlntegerDigits(int digits) - устанавливает максимальное количество цифр перед десятичной точкой в форматируемом объекте. Используйте этот метод с предельной осторожностью. Если вы зададите слишком мало цифр, число будет просто усечено, и результат станет совершенно неправильным!
setMinimumFractionDigits(int digits) - устанавливает минимальное количество цифр после десятичной точки в форматируемом объекте. Если количество цифр в дробной части числа меньше минимального, то на экран выводятся замыкающие нули.
setMinimumlntegerDigits(int digits) - устанавливает минимальное количество цифр перед десятичной точкой в форматируемом объекте. Если количество цифр в целой части числа меньше минимального, то на экран выводятся ведущие нули.
getMaximumFractionDigits() - возвращает максимальное количество цифр после десятичной точки в форматируемом объекте.
getMinimumFractionDigits() - возвращает минимальное количество цифр после десятичной точки в форматируемом объекте.
Рассмотрим пример использования методов setMaximumFractionDigits(int digits)
, getMaximumFractionDigits()
, setMaximumlntegerDigits(int digits)
:
import java.text.NumberFormat;
public class NumberFormatExample2 {
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));
}
}
Следующий пример демонстрирует использование методов getMinimumFractionDigits()
, setMinimumlntegerDigits(int digits)
, setMinimumFractionDigits(int digits)
класса NumberFormat
:
import java.text.NumberFormat;
public class NumberFormatExample3 {
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));
}
}
Метод parse() класса NumberFormat
преобразует строку к числу. Если перед вызовом метода parse()
вызвать метод setParseIntegerOnly(true)
, как показано в следующем примере, то преобразовываться будет только целая часть числа.
import java.text.NumberFormat;
import java.text.ParseException;
public class NumberFormatExample4 {
public static void main(String[] args) throws ParseException {
NumberFormat nf = NumberFormat.getInstance();
System.out.println(nf.parse("1234,567"));
nf.setParseIntegerOnly(true);
System.out.println(nf.parse("1234,567"));
}
}
Зарегистрируйтесь или войдите, чтобы иметь возможность оставить комментарий.