final class DigitList extends Object
DigitList handles the transcoding between numeric values and
 strings of characters.  It only represents non-negative numbers.  The
 division of labor between DigitList and
 DecimalFormat is that DigitList handles the radix
 10 representation issues and numeric conversion, including rounding;
 DecimalFormat handles the locale-specific issues such as
 positive and negative representation, digit grouping, decimal point,
 currency, and so on.
 A DigitList is a representation of a finite numeric value.
 DigitList objects do not represent NaN or infinite
 values.  A DigitList value can be converted to a
 BigDecimal without loss of precision.  Conversion to other
 numeric formats may involve loss of precision, depending on the specific
 value.
 
The DigitList representation consists of a string of
 characters, which are the digits radix 10, from '0' to '9'.  It also has a
 base 10 exponent associated with it.  The value represented by a
 DigitList object can be computed by mulitplying the fraction
 f, where 0 <= f < 1, derived by placing all the digits of
 the list to the right of the decimal point, by 10^exponent.
Locale, 
Format, 
ChoiceFormat, 
MessageFormat| Modifier and Type | Field and Description | 
|---|---|
int | 
count  | 
int | 
decimalAt
These data members are intentionally public and can be set directly. 
 | 
byte[] | 
digits  | 
static int | 
MAX_LONG_DIGITS
The maximum number of significant digits in an IEEE 754 double, that
 is, in a Java double. 
 | 
| Constructor and Description | 
|---|
DigitList()  | 
| Modifier and Type | Method and Description | 
|---|---|
void | 
append(int digit)
Appends digits to the list. 
 | 
void | 
round(int maximumDigits)
Round the representation to the given number of digits. 
 | 
void | 
set(BigInteger source,
   int maximumDigits)
Set the digit list to a representation of the given BigInteger value. 
 | 
(package private) void | 
set(double source,
   int maximumDigits,
   boolean fixedPoint)
Set the digit list to a representation of the given double value. 
 | 
void | 
set(long source)
Utility routine to set the value of the digit list from a long 
 | 
void | 
set(long source,
   int maximumDigits)
Set the digit list to a representation of the given long value. 
 | 
public static final int MAX_LONG_DIGITS
public int decimalAt
The value represented is given by placing the decimal point before digits[decimalAt]. If decimalAt is < 0, then leading zeros between the decimal point and the first nonzero digit are implied. If decimalAt is > count, then trailing zeros between the digits[count-1] and the decimal point are implied.
Equivalently, the represented value is given by f * 10^decimalAt. Here f is a value 0.1 ≤ f < 1 arrived at by placing the digits in Digits to the right of the decimal.
DigitList is normalized, so if it is non-zero, figits[0] is non-zero. We don't allow denormalized numbers because our exponent is effectively of unlimited magnitude. The count value contains the number of significant digits present in digits[].
Zero is represented by any DigitList with count == 0 or with each digits[i] for all i ≤ count == '0'.
public int count
public byte[] digits
public void append(int digit)
final void set(double source,
       int maximumDigits,
       boolean fixedPoint)
source - Value to be converted; must not be Inf, -Inf, Nan,
 or a value ≤ 0.maximumDigits - The most fractional or total digits which should
 be converted.fixedPoint - If true, then maximumDigits is the maximum
 fractional digits to be converted.  If false, total digits.public final void round(int maximumDigits)
maximumDigits - The maximum number of digits to be shown.
 Upon return, count will be less than or equal to maximumDigits.
 This now performs rounding when maximumDigits is 0, formerly it did not.public final void set(long source)
public final void set(long source,
       int maximumDigits)
source - Value to be converted; must be >= 0 or ==
 Long.MIN_VALUE.maximumDigits - The most digits which should be converted.
 If maximumDigits is lower than the number of significant digits
 in source, the representation will be rounded.  Ignored if <= 0.public final void set(BigInteger source, int maximumDigits)
source - Value to be convertedmaximumDigits - The most digits which should be converted.
 If maximumDigits is lower than the number of significant digits
 in source, the representation will be rounded.  Ignored if <= 0.