Concrete class for demonstrating how to convert binary numbers into text
strings for meaningful display.
The following is the instruction on how to run the number format demo.
===================
Number formatters convert binary numbers (integer or float data types)
into text strings for meaningful display. The number formatters:
- Provide control over every aspect of the display, including separator
characters, optional digits, maximum and minimum decimal and integer places,
and optional prefixes and suffixes
- Can produce currency and percentage formats and can be extended to
produce other formats
- Allow you to specify new formats with string patterns and can retrieve
the normalized pattern
- Can parse anything they can format, for use when converting text input
into binary data
Localized Formats
Creating Formats with Patterns
Parsing Text
The number formatters let you format numbers in the ways that are
appropriate for any user's conventions, including country-specific formats
such as currencies. You can also specify other formatting options such as
minimum and maximum number of digits displayed.
The applet displays the number in two formatsthe Java 1.0
representation ("Java 1.0 Number"), and the localized format
generated by the number formatters ("New Number").
To See This... |
Do This... |
Localized number formats. In the international
string, the separator characters change to reflect the conventions used by
different countries.
|
1.
|
Pull down the Locale menu
|
2.
|
Try several different locales with the up and down arrow keys
(on Windows) or the mouse button (on Macintosh)
|
|
Localized currency formats. The formatter adds
a prefix or suffix to indicate the currency unit. It also uses a minus sign
or parentheses to indicate negative numbers, as appropriate.
|
1.
|
Click on the Currency button
|
2.
|
Pull down the Locale menu and try several different locales
|
|
Setting formatting options, for example,
specifying a precise number of decimal places.
|
1.
|
Type "3" in the Min field for Decimal Count
the formatter appends zeroes to display the specified number of
decimal places
|
|
A string pattern can control the output format for a number formatter,
making it easy for you to edit a format or provide an editing mechanism
for end users. The pattern also changes to reflect any changes you make
programmatically.
Patterns can either be invariant (for use only by programmers) or
localized (for use by end users). Click on the Localized Pattern
box to change the state.
To See This... |
Do This... |
You can edit the pattern to create a new format.
|
1.
|
Select the Default Format button and the English
(United States) locale
|
2.
|
Increase the maximum number for Decimal Count
|
3.
|
Delete the "#" characters at the end of the Pattern
field and type in zeroesthe decimal places in the New Number
field change to zeroes
|
|
You can edit the prefix and suffix strings, and
create different patterns for positive and negative numbers.
|
1.
|
Type a plus sign ("+") in the Prefix field for
positive numbers to modify the positive number pattern
|
2.
|
Delete the minus sign from the Java 1.0 number
|
|
The number formatters not only format for any language, but can parse
numbers displayed in any language back into binary format.
To See This... |
Do This... |
Changes to the international number are parsed
and reflected in the Java 1.0 Number field.
|
1.
|
Select the thousands separator character in the New Number
field (the comma if you are still in the U.S. locale) and replace it with
a number
|
|
The parsing mechanism is somewhat lenient. For example, a thousands
separator character can be misplaced and the parser still returns the
correct value.
Though not yet demonstrated here, the number formatters also handle
IEEE number symbols such as the infinity sign and NaN (for example, 0/0),
creating the correct results for both formatting and parsing. The formatters
also return the alignment point so you can line up the end of integer
portions correctly even without monospace fonts or with strange number
conventions.
You can type in other numbers in either number field or enter a
completely new pattern to see different formatting behaviors. Try it out!
|