@Immutable public final class SdkNumber extends Number implements Serializable
to create from a BigDecimal.
,
to create from a BigInteger.
,
to create from a double
,
to create from a float.
,
to create from a long.
,
to create from a short.
,
to create from an integer.
,
to create from a Stringl,
Thus by doing this, this class is able to preserve arbitrary precison of any given number.
If {@link SdkNumber} is expected in a particular number format then its corresponding getter methods can be used.
Example for a {@link SdkNumber} created with {@link BigDecimal} the
,
can be used.
,
Serialized FormModifier and Type | Method and Description |
---|---|
BigDecimal |
bigDecimalValue()
Gets the bigDecimalValue of the
SdkNumber . |
double |
doubleValue()
Gets the double value of the
SdkNumber . |
boolean |
equals(Object o) |
float |
floatValue()
Gets the float value of the
SdkNumber . |
static SdkNumber |
fromBigDecimal(BigDecimal bigDecimalValue)
Create
SdkNumber from a BigDecimal value. |
static SdkNumber |
fromBigInteger(BigInteger bigIntegerValue)
Create
SdkNumber from a BigInteger value. |
static SdkNumber |
fromDouble(double doubleValue)
Create
SdkNumber from a double Value. |
static SdkNumber |
fromFloat(float floatValue)
Create
SdkNumber from a float Value. |
static SdkNumber |
fromInteger(int integerValue)
Create
SdkNumber from a integer value. |
static SdkNumber |
fromLong(long longValue)
Create
SdkNumber from a long Value. |
static SdkNumber |
fromShort(short shortValue)
Create
SdkNumber from a long Value. |
static SdkNumber |
fromString(String stringValue)
Create
SdkNumber from a long Value. |
int |
hashCode() |
int |
intValue()
Gets the integer value of the
SdkNumber . |
long |
longValue()
Gets the long value of the
SdkNumber . |
String |
stringValue()
Gets the String value of the
SdkNumber . |
String |
toString() |
byteValue, shortValue
public static SdkNumber fromInteger(int integerValue)
SdkNumber
from a integer value.integerValue
- Integer value.SdkNumber
for the given int value.public static SdkNumber fromBigInteger(BigInteger bigIntegerValue)
SdkNumber
from a BigInteger value.bigIntegerValue
- BigInteger value.SdkNumber
for the given BigInteger value.public static SdkNumber fromBigDecimal(BigDecimal bigDecimalValue)
SdkNumber
from a BigDecimal value.bigDecimalValue
- BigInteger value.SdkNumber
for the given BigDecimal value.public static SdkNumber fromLong(long longValue)
SdkNumber
from a long Value.longValue
- long value.SdkNumber
for the given long value.public static SdkNumber fromDouble(double doubleValue)
SdkNumber
from a double Value.doubleValue
- long value.SdkNumber
for the given double value.public static SdkNumber fromShort(short shortValue)
SdkNumber
from a long Value.shortValue
- long value.SdkNumber
for the given long value.public static SdkNumber fromFloat(float floatValue)
SdkNumber
from a float Value.floatValue
- float value.SdkNumber
for the given float value.public static SdkNumber fromString(String stringValue)
SdkNumber
from a long Value.stringValue
- String value.SdkNumber
for the given stringValue value.public int intValue()
SdkNumber
.
If we do a intValue() for SdkNumber
constructed
from float, double, long, BigDecimal, BigInteger number type then it
may result in loss of magnitude and a loss of precision.
The result may lose some of the least significant bits of the value.
Precision is not lost while getting a SdkNumber
which was constructed as
lower precision number type like short, byte, integer.public long longValue()
SdkNumber
.
If we do a longValue() for SdkNumber
constructed from
float, double, BigDecimal, BigInteger number type then it
may result in loss of magnitude and a loss of precision.
Precision is not lost while getting a SdkNumber
which was constructed from
lower precision type like short, byte, integer.public float floatValue()
SdkNumber
.
If we do a floatValue() for SdkNumber
constructed from
double, BigDecimal, BigInteger number type then it
may result in loss of magnitude and a loss of precision.
Precision is not lost while getting a SdkNumber
which was constructed from
precision type like short, byte, integer, long.floatValue
in class Number
SdkNumber
.public double doubleValue()
SdkNumber
.
If we do a doubleValue() for SdkNumber
constructed from BigDecimal, BigInteger number type then it
may result in loss of magnitude and a loss of precision.
Precision is not lost while getting a SdkNumber
which was constructed from
precision type like short, byte, integer, long, float.doubleValue
in class Number
SdkNumber
.public BigDecimal bigDecimalValue()
SdkNumber
.
Precision is not lost in this case.
However bigDecimalValue cannot be performed on
a {SdkNumber
} constructed from Float/Double Nan/Infinity.SdkNumber
NumberFormatException
- Exception in thrown if a SdkNumber
was constructed asNan/Infinte number
of Double/FLoat type.Since we cannot convert NaN/Infinite numbers to BigDecimal.public String stringValue()
SdkNumber
.Copyright © 2023. All rights reserved.