org.h2.value

## Class ValueDecfloat

- java.lang.Object
- - org.h2.value.VersionedValue<Value>
  - - org.h2.value.Value
    - - org.h2.value.ValueDecfloat

All Implemented Interfaces:
  HasSQL, Typed

    public final class ValueDecfloat
    extends Value

Implementation of the DECFLOAT data type.

### Field Summary

Fields
`static ValueDecfloat` `NAN` The not a number value.
`static ValueDecfloat` `NEGATIVE_INFINITY` The negative infinity value.
`static ValueDecfloat` `ONE` The value 'one'.
`static ValueDecfloat` `POSITIVE_INFINITY` The positive infinity value.
`static ValueDecfloat` `ZERO` The value 'zero'.

### Fields inherited from class org.h2.value.Value

`ARRAY, BIGINT, BINARY, BLOB, BOOLEAN, CHAR, CLOB, DATE, DECFLOAT, DOUBLE, EMPTY_VALUES, ENUM, GEOMETRY, INTEGER, INTERVAL_DAY, INTERVAL_DAY_TO_HOUR, INTERVAL_DAY_TO_MINUTE, INTERVAL_DAY_TO_SECOND, INTERVAL_HOUR, INTERVAL_HOUR_TO_MINUTE, INTERVAL_HOUR_TO_SECOND, INTERVAL_MINUTE, INTERVAL_MINUTE_TO_SECOND, INTERVAL_MONTH, INTERVAL_SECOND, INTERVAL_YEAR, INTERVAL_YEAR_TO_MONTH, JAVA_OBJECT, JSON, MIN_LONG_DECIMAL, NULL, NUMERIC, REAL, ROW, SMALLINT, TIME, TIME_TZ, TIMESTAMP, TIMESTAMP_TZ, TINYINT, TYPE_COUNT, UNKNOWN, UUID, VARBINARY, VARCHAR, VARCHAR_IGNORECASE`

### Fields inherited from interface org.h2.util.HasSQL

`ADD_PLAN_INFORMATION, DEFAULT_SQL_FLAGS, NO_CASTS, QUOTE_ONLY_WHEN_REQUIRED, REPLACE_LOBS_FOR_TRACE, TRACE_SQL_FLAGS`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`Value` `add(Value v)` Add a value and return the result.
`int` `compareTypeSafe(Value o, CompareMode mode, CastDataProvider provider)` Compare this value against another value given that the values are of the same data type.
`static ValueDecfloat` `divide(java.math.BigDecimal dividend, java.math.BigDecimal divisor, TypeInfo quotientType)` Divides to `BigDecimal` values and returns a `DECFLOAT` result of the specified data type.
`Value` `divide(Value v, TypeInfo quotientType)` Divide by a value and return the result.
`boolean` `equals(java.lang.Object other)` Check if the two values have the same hash code.
`static ValueDecfloat` `get(java.math.BigDecimal dec)` Get or create a DECFLOAT value for the given big decimal.
`java.math.BigDecimal` `getBigDecimal()`
`double` `getDouble()` Returns this value as a Java `double` value.
`float` `getFloat()` Returns this value as a Java `float` value.
`int` `getMemory()` Get the memory used by this object.
`int` `getSignum()`
`java.lang.StringBuilder` `getSQL(java.lang.StringBuilder builder, int sqlFlags)` Appends the SQL statement of this object to the specified builder.
`java.lang.String` `getString()` Get the value as a string.
`TypeInfo` `getType()` Returns the data type.
`int` `getValueType()` Get the value type.
`int` `hashCode()`
`boolean` `isFinite()` Returns `true`, if this value is finite.
`Value` `modulus(Value v)` Take the modulus with a value and return the result.
`Value` `multiply(Value v)` Multiply with a value and return the result.
`Value` `negate()` Return -value if this value support arithmetic operations.
`Value` `subtract(Value v)` Subtract a value and return the result.

### Methods inherited from class org.h2.value.Value

`castTo, charLength, clearCache, compareTo, compareWithNull, containsNull, convertForAssignTo, convertTo, convertTo, convertTo, convertTo, convertTo, convertToAnyArray, convertToAnyJson, convertToAnyRow, convertToBigint, convertToBoolean, convertToChar, convertToDate, convertToDouble, convertToEnum, convertToGeometry, convertToInt, convertToInt, convertToJavaObject, convertToReal, convertToSmallint, convertToTinyint, convertToUuid, getBoolean, getByte, getBytes, getBytesNoCopy, getHigherOrder, getInputStream, getInputStream, getInt, getLong, getReader, getReader, getShort, getTypeName, getUnsupportedExceptionForOperation, getValueWithFirstNull, isFalse, isTrue, octetLength, toString`

### Methods inherited from class org.h2.value.VersionedValue

`getCommittedValue, getCurrentValue, getOperationId, isCommitted`

### Methods inherited from class java.lang.Object

`clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface org.h2.util.HasSQL

`getSQL, getTraceSQL`

### Field Detail

#### ZERO

    public static final ValueDecfloat ZERO

The value 'zero'.

#### ONE

    public static final ValueDecfloat ONE

The value 'one'.

#### POSITIVE_INFINITY

    public static final ValueDecfloat POSITIVE_INFINITY

The positive infinity value.

#### NEGATIVE_INFINITY

    public static final ValueDecfloat NEGATIVE_INFINITY

The negative infinity value.

#### NAN

    public static final ValueDecfloat NAN

The not a number value.

### Method Detail

#### getString

    public java.lang.String getString()

Description copied from class: `Value`
Get the value as a string.

Specified by:
  `getString` in class `Value`
Returns:
  the string

#### getSQL

    public java.lang.StringBuilder getSQL(java.lang.StringBuilder builder,
                                          int sqlFlags)

Description copied from interface: `HasSQL`
Appends the SQL statement of this object to the specified builder.

Parameters:
  `builder` - string builder
  `sqlFlags` - formatting flags
Returns:
  the specified string builder

#### getType

    public TypeInfo getType()

Description copied from interface: `Typed`
Returns the data type.

Specified by:
  `getType` in interface `Typed`
Specified by:
  `getType` in class `Value`
Returns:
  the data type

#### getValueType

    public int getValueType()

Description copied from class: `Value`
Get the value type.

Specified by:
  `getValueType` in class `Value`
Returns:
  the value type

#### add

    public Value add(Value v)

Description copied from class: `Value`
Add a value and return the result.

Overrides:
  `add` in class `Value`
Parameters:
  `v` - the value to add
Returns:
  the result

#### subtract

    public Value subtract(Value v)

Description copied from class: `Value`
Subtract a value and return the result.

Overrides:
  `subtract` in class `Value`
Parameters:
  `v` - the value to subtract
Returns:
  the result

#### negate

    public Value negate()

Description copied from class: `Value`
Return -value if this value support arithmetic operations.

Overrides:
  `negate` in class `Value`
Returns:
  the negative

#### multiply

    public Value multiply(Value v)

Description copied from class: `Value`
Multiply with a value and return the result.

Overrides:
  `multiply` in class `Value`
Parameters:
  `v` - the value to multiply with
Returns:
  the result

#### divide

    public Value divide(Value v,
                        TypeInfo quotientType)

Description copied from class: `Value`
Divide by a value and return the result.

Overrides:
  `divide` in class `Value`
Parameters:
  `v` - the divisor
  `quotientType` - the type of quotient (used only to read precision and scale when applicable)
Returns:
  the result

#### divide

    public static ValueDecfloat divide(java.math.BigDecimal dividend,
                                       java.math.BigDecimal divisor,
                                       TypeInfo quotientType)

Divides to `BigDecimal` values and returns a `DECFLOAT` result of the specified data type.

Parameters:
  `dividend` - the dividend
  `divisor` - the divisor
  `quotientType` - the type of quotient
Returns:
  the quotient

#### modulus

    public Value modulus(Value v)

Description copied from class: `Value`
Take the modulus with a value and return the result.

Overrides:
  `modulus` in class `Value`
Parameters:
  `v` - the value to take the modulus with
Returns:
  the result

#### compareTypeSafe

    public int compareTypeSafe(Value o,
                               CompareMode mode,
                               CastDataProvider provider)

Description copied from class: `Value`
Compare this value against another value given that the values are of the same data type.

Specified by:
  `compareTypeSafe` in class `Value`
Parameters:
  `o` - the other value
  `mode` - the compare mode
  `provider` - the cast information provider
Returns:
  0 if both values are equal, -1 if the other value is smaller, and 1 otherwise

#### getSignum

    public int getSignum()

Overrides:
  `getSignum` in class `Value`

#### getBigDecimal

    public java.math.BigDecimal getBigDecimal()

Overrides:
  `getBigDecimal` in class `Value`

#### getFloat

    public float getFloat()

Description copied from class: `Value`
Returns this value as a Java `float` value.

Overrides:
  `getFloat` in class `Value`
Returns:
  value

#### getDouble

    public double getDouble()

Description copied from class: `Value`
Returns this value as a Java `double` value.

Overrides:
  `getDouble` in class `Value`
Returns:
  value

#### hashCode

    public int hashCode()

Specified by:
  `hashCode` in class `Value`

#### equals

    public boolean equals(java.lang.Object other)

Description copied from class: `Value`
Check if the two values have the same hash code. No data conversion is made; this method returns false if the other object is not of the same class. For some values, compareTo may return 0 even if equals return false. Example: ValueDecimal 0.0 and 0.00.

Specified by:
  `equals` in class `Value`
Parameters:
  `other` - the other value
Returns:
  true if they are equal

#### getMemory

    public int getMemory()

Description copied from class: `Value`
Get the memory used by this object.

Overrides:
  `getMemory` in class `Value`
Returns:
  the memory used in bytes

#### isFinite

    public boolean isFinite()

Returns `true`, if this value is finite.

Returns:
  `true`, if this value is finite, `false` otherwise

#### get

    public static ValueDecfloat get(java.math.BigDecimal dec)

Get or create a DECFLOAT value for the given big decimal.

Parameters:
  `dec` - the big decimal
Returns:
  the value