Package org.bson.types
Class Decimal128
- java.lang.Object
- 
- java.lang.Number
- 
- org.bson.types.Decimal128
 
 
- 
- All Implemented Interfaces:
- Serializable,- Comparable<Decimal128>
 
 public final class Decimal128 extends Number implements Comparable<Decimal128> A binary integer decimal representation of a 128-bit decimal value, supporting 34 decimal digits of significand and an exponent range of -6143 to +6144.
- 
- 
Field SummaryFields Modifier and Type Field Description static Decimal128NaNA constant holding a Not-a-Number (NaN) value of typeDecimal128.static Decimal128NEGATIVE_INFINITYA constant holding the negative infinity of typeDecimal128.static Decimal128NEGATIVE_NaNA constant holding a negative Not-a-Number (-NaN) value of typeDecimal128.static Decimal128NEGATIVE_ZEROA constant holding a negative zero value of typeDecimal128.static Decimal128POSITIVE_INFINITYA constant holding the positive infinity of typeDecimal128.static Decimal128POSITIVE_ZEROA constant holding a postive zero value of typeDecimal128.
 - 
Constructor SummaryConstructors Constructor Description Decimal128(long value)Constructs a Decimal128 value representing the given long.Decimal128(BigDecimal value)Constructs a Decimal128 value representing the given BigDecimal.
 - 
Method SummaryAll Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description BigDecimalbigDecimalValue()Gets a BigDecimal that is equivalent to this Decimal128.intcompareTo(Decimal128 o)doubledoubleValue()Converts thisDecimal128to adouble.booleanequals(Object o)Returns true if the encoded representation of this instance is the same as the encoded representation ofo.floatfloatValue()Converts thisDecimal128to afloat.static Decimal128fromIEEE754BIDEncoding(long high, long low)Create an instance with the given high and low order bits representing this Decimal128 as an IEEE 754-2008 128-bit decimal floating point using the BID encoding scheme.longgetHigh()Gets the high-order 64 bits of the IEEE 754-2008 128-bit decimal floating point encoding for this Decimal128, using the BID encoding scheme.longgetLow()Gets the low-order 64 bits of the IEEE 754-2008 128-bit decimal floating point encoding for this Decimal128, using the BID encoding scheme.inthashCode()intintValue()Converts thisDecimal128to aint.booleanisFinite()Returns true if this Decimal128 is finite.booleanisInfinite()Returns true if this Decimal128 is infinite.booleanisNaN()Returns true if this Decimal128 is Not-A-Number (NaN).booleanisNegative()Returns true if this Decimal128 is negative.longlongValue()Converts thisDecimal128to along.static Decimal128parse(String value)Returns a Decimal128 value representing the given String.StringtoString()Returns the String representation of the Decimal128 value.- 
Methods inherited from class java.lang.NumberbyteValue, shortValue
 
- 
 
- 
- 
- 
Field Detail- 
POSITIVE_INFINITYpublic static final Decimal128 POSITIVE_INFINITY A constant holding the positive infinity of typeDecimal128. It is equal to the value return byDecimal128.valueOf("Infinity").
 - 
NEGATIVE_INFINITYpublic static final Decimal128 NEGATIVE_INFINITY A constant holding the negative infinity of typeDecimal128. It is equal to the value return byDecimal128.valueOf("-Infinity").
 - 
NEGATIVE_NaNpublic static final Decimal128 NEGATIVE_NaN A constant holding a negative Not-a-Number (-NaN) value of typeDecimal128. It is equal to the value return byDecimal128.valueOf("-NaN").
 - 
NaNpublic static final Decimal128 NaN A constant holding a Not-a-Number (NaN) value of typeDecimal128. It is equal to the value return byDecimal128.valueOf("NaN").
 - 
POSITIVE_ZEROpublic static final Decimal128 POSITIVE_ZERO A constant holding a postive zero value of typeDecimal128. It is equal to the value return byDecimal128.valueOf("0").
 - 
NEGATIVE_ZEROpublic static final Decimal128 NEGATIVE_ZERO A constant holding a negative zero value of typeDecimal128. It is equal to the value return byDecimal128.valueOf("-0").
 
- 
 - 
Constructor Detail- 
Decimal128public Decimal128(long value) Constructs a Decimal128 value representing the given long.- Parameters:
- value- the Decimal128 value represented as a long
 
 - 
Decimal128public Decimal128(BigDecimal value) Constructs a Decimal128 value representing the given BigDecimal.- Parameters:
- value- the Decimal128 value represented as a BigDecimal
- Throws:
- NumberFormatException- if the value is out of the Decimal128 range
 
 
- 
 - 
Method Detail- 
parsepublic static Decimal128 parse(String value) Returns a Decimal128 value representing the given String.- Parameters:
- value- the Decimal128 value represented as a String
- Returns:
- the Decimal128 value representing the given String
- Throws:
- NumberFormatException- if the value is out of the Decimal128 range
- See Also:
- From-String Specification
 
 - 
fromIEEE754BIDEncodingpublic static Decimal128 fromIEEE754BIDEncoding(long high, long low) Create an instance with the given high and low order bits representing this Decimal128 as an IEEE 754-2008 128-bit decimal floating point using the BID encoding scheme.- Parameters:
- high- the high-order 64 bits
- low- the low-order 64 bits
- Returns:
- the Decimal128 value representing the given high and low order bits
 
 - 
getHighpublic long getHigh() Gets the high-order 64 bits of the IEEE 754-2008 128-bit decimal floating point encoding for this Decimal128, using the BID encoding scheme.- Returns:
- the high-order 64 bits of this Decimal128
 
 - 
getLowpublic long getLow() Gets the low-order 64 bits of the IEEE 754-2008 128-bit decimal floating point encoding for this Decimal128, using the BID encoding scheme.- Returns:
- the low-order 64 bits of this Decimal128
 
 - 
bigDecimalValuepublic BigDecimal bigDecimalValue() Gets a BigDecimal that is equivalent to this Decimal128.- Returns:
- a BigDecimal that is equivalent to this Decimal128
- Throws:
- ArithmeticException- if the Decimal128 value is NaN, Infinity, -Infinity, or -0, none of which can be represented as a BigDecimal
 
 - 
isNegativepublic boolean isNegative() Returns true if this Decimal128 is negative.- Returns:
- true if this Decimal128 is negative
 
 - 
isInfinitepublic boolean isInfinite() Returns true if this Decimal128 is infinite.- Returns:
- true if this Decimal128 is infinite
 
 - 
isFinitepublic boolean isFinite() Returns true if this Decimal128 is finite.- Returns:
- true if this Decimal128 is finite
 
 - 
isNaNpublic boolean isNaN() Returns true if this Decimal128 is Not-A-Number (NaN).- Returns:
- true if this Decimal128 is Not-A-Number
 
 - 
compareTopublic int compareTo(Decimal128 o) - Specified by:
- compareToin interface- Comparable<Decimal128>
 
 - 
intValuepublic int intValue() Converts thisDecimal128to aint. This conversion is analogous to the narrowing primitive conversion fromdoubletointas defined in The Java™ Language Specification: any fractional part of thisDecimal128will be discarded, and if the resulting integral value is too big to fit in aint, only the low-order 32 bits are returned. Note that this conversion can lose information about the overall magnitude and precision of thisDecimal128value as well as return a result with the opposite sign. Note that#NEGATIVE_ZEROis converted to0.
 - 
longValuepublic long longValue() Converts thisDecimal128to along. This conversion is analogous to the narrowing primitive conversion fromdoubletolongas defined in The Java™ Language Specification: any fractional part of thisDecimal128will be discarded, and if the resulting integral value is too big to fit in along, only the low-order 64 bits are returned. Note that this conversion can lose information about the overall magnitude and precision of thisDecimal128value as well as return a result with the opposite sign. Note that#NEGATIVE_ZEROis converted to0L.
 - 
floatValuepublic float floatValue() Converts thisDecimal128to afloat. This conversion is similar to the narrowing primitive conversion fromdoubletofloatas defined in The Java™ Language Specification: if thisDecimal128has too great a magnitude to represent as afloat, it will be converted toFloat.NEGATIVE_INFINITYorFloat.POSITIVE_INFINITYas appropriate. Note that even when the return value is finite, this conversion can lose information about the precision of theDecimal128value. Note that#NEGATIVE_ZEROis converted to0.0f.- Specified by:
- floatValuein class- Number
- Returns:
- this Decimal128converted to afloat.
- Since:
- 3.10
 
 - 
doubleValuepublic double doubleValue() Converts thisDecimal128to adouble. This conversion is similar to the narrowing primitive conversion fromdoubletofloatas defined in The Java™ Language Specification: if thisDecimal128has too great a magnitude to represent as adouble, it will be converted toDouble.NEGATIVE_INFINITYorDouble.POSITIVE_INFINITYas appropriate. Note that even when the return value is finite, this conversion can lose information about the precision of theDecimal128value. Note that#NEGATIVE_ZEROis converted to0.0d.- Specified by:
- doubleValuein class- Number
- Returns:
- this Decimal128converted to adouble.
- Since:
- 3.10
 
 - 
equalspublic boolean equals(Object o) Returns true if the encoded representation of this instance is the same as the encoded representation ofo.One consequence is that, whereas Double.NaN != Double.NaN,new Decimal128("NaN").equals(new Decimal128("NaN")returns true.Another consequence is that, as with BigDecimal, new Decimal128("1.0").equals(new Decimal128("1.00")returns false, because the precision is not the same and therefore the representation is not the same.
 - 
toStringpublic String toString() Returns the String representation of the Decimal128 value.- Overrides:
- toStringin class- Object
- Returns:
- the String representation
- See Also:
- To-String Sprecification
 
 
- 
 
-