Locale-Sensitive Java Method
java.text.DecimalFormat
public DecimalFormat()
Internationalization (I18n) Method Overview
DecimalFormat is a concrete subclass of NumberFormat that formats decimal numbers.
It has a variety of features designed to make it possible to parse and format numbers in any locale,
including support for Western, Arabic, and Indic digits. It also supports different kinds
of numbers, including integers (123), fixed-point numbers (123.4), scientific notation (1.23E4),
percentages (12%), and currency amounts ($123). All of these can be localized.
To obtain a DecimalFormat for a specific locale, including the default locale,
call a NumberFormat factory method
such as getInstance() .
In general, do not call the DecimalFormat constructors directly.
I18n Issues
This zero-argument constructor produces an instance of DecimalFormat
specific to the default locale. There is no locale-sensitive constructor and it is recommended
that instead of calling any DecimalFormat constructor that you instead call a
NumberFormat factory method, to which you can pass a runtime locale object, allowing
you to create an instance of DecimalFormat that is independent of the machine locale.
Suggested Replacement
java.text.NumberFormat
public static NumberFormat getInstance(
Locale inLocale)
Instead of:
DecimalFormat format =
new DecimalFormat();
Use:
//Retrieve the runtime user's locale
Locale loc = getUserLocale();
//Now call the NumberFormat factory method
//and pass the locale object
NumberFormat f = NumberFormat.getInstance(loc);
//If it is in fact an instance of DecimalFormat,
//cast it as such and use it as needed
if (f instanceof DecimalFormat) {
((DecimalFormat) f).
setDecimalSeparatorAlwaysShown(true);
}
Please see Number Formatting for more information.
Locale-Sensitive Java Methods
|