Package org.h2.value

# Class ValueDouble

java.lang.Object
org.h2.value.VersionedValue<Value>
org.h2.value.Value
org.h2.value.ValueDouble

All Implemented Interfaces:
  `HasSQL`, `Typed`

public final class ValueDouble extends Value
Implementation of the DOUBLE PRECISION data type.

## Field Summary

Fields
Modifier and Type
Field
Description
`static final int`
`DECIMAL_PRECISION`
The approximate precision in decimal digits.
`static final int`
`DISPLAY_SIZE`
The maximum display size of a DOUBLE.
`static final ValueDouble`
`ONE`
The value 1.
`static final ValueDouble`
`ZERO`
The value 0.
`static final long`
`ZERO_BITS`
Double.doubleToLongBits(0d)

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

`ARRAY, ASSIGN_TO, BIGINT, BINARY, BLOB, BOOLEAN, CAST_TO, CHAR, CLOB, CONVERT_TO, 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, MAX_LONG_DECIMAL, 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

Modifier and Type
Method
Description
`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.
`Value`
`divide(Value v, TypeInfo quotientType)`
Divide by a value and return the result.
`boolean`
`equals(Object other)`
Check if the two values have the same hash code.
`static ValueDouble`
`get(double d)`
Get or create a DOUBLE PRECISION value for the given double.
`BigDecimal`
`getBigDecimal()`
`double`
`getDouble()`
Returns this value as a Java `double` value.
`float`
`getFloat()`
Returns this value as a Java `float` value.
`int`
`getSignum()`
`StringBuilder`
`getSQL(StringBuilder builder, int sqlFlags)`
Appends the SQL statement of this object to the specified builder.
`String`
`getString()`
Get the value as a string.
`TypeInfo`
`getType()`
Returns the data type.
`int`
`getValueType()`
Get the value type.
`int`
`hashCode()`
`ValueDouble`
`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, convertToJson, convertToLong, convertToReal, convertToSmallint, convertToTinyint, convertToUuid, getBoolean, getByte, getBytes, getBytesNoCopy, getHigherOrder, getInputStream, getInputStream, getInt, getLong, getMemory, 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 Details

### DECIMAL_PRECISION

public static final int DECIMAL_PRECISION
The approximate precision in decimal digits.

See Also:
  - Constant Field Values

### DISPLAY_SIZE

public static final int DISPLAY_SIZE
The maximum display size of a DOUBLE. Example: -3.3333333333333334E-100

See Also:
  - Constant Field Values

### ZERO_BITS

public static final long ZERO_BITS
Double.doubleToLongBits(0d)

See Also:
  - Constant Field Values

### ZERO

public static final ValueDouble ZERO
The value 0.

### ONE

public static final ValueDouble ONE
The value 1.

## Method Details

### 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

### modulus

public ValueDouble 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

### getSQL

public StringBuilder getSQL(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

### 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 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

### getString

public String getString()
Description copied from class: `Value`
Get the value as a string.

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

### hashCode

public int hashCode()

Specified by:
  `hashCode` in class `Value`

### get

public static ValueDouble get(double d)
Get or create a DOUBLE PRECISION value for the given double.

Parameters:
  `d` - the double
Returns:
  the value

### equals

public boolean equals(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