FLOAT/REAL/DOUBLE PRECISION Data Types

Teradata Vantage™ Data Types and Literals

brand
Software
Teradata Vantage
prodname
Teradata Database
Teradata Vantage NewSQL Engine
vrm_release
16.20
category
Programming Reference
featnum
B035-1143-162K

Purpose

Represent values in sign/magnitude form ranging from 2.226 x 10-308 to 1.797 x 10308.

Syntax



attributes
Appropriate data type attributes, column storage attributes, or column constraint attributes.
See Core Data Type Attributes and Storage and Constraint Attributes for specific information.

ANSI Compliance

REAL and DOUBLE PRECISION are in the ANSI SQL:2011 standard. FLOAT is a Teradata synonym for REAL and DOUBLE PRECISION.

Floating Point Value Storage and Manipulation

Eight bytes are used to hold a floating point value.

Floating point values are stored and manipulated internally in IEEE floating point format. Floating point values are stored with the least significant byte first, with one bit for the mantissa sign, 11 bits for the exponent, and 52 bits for the mantissa. The mantissa sign is in the most significant bit position; the exponent sign is a part of the exponent field (excess-1024 notation, in which (1024 - exponent) = sign).

Negative numbers differ from positive numbers of the same magnitude only in the sign bit.

Teradata Database supports normalized, but not non-normalized, client floating point values.

The range of IEEE floating point values may be wider than that supported by the client system. Therefore, values can be created and stored in Teradata Database that return error messages when converted for delivery to the client system.

External Representation of FLOAT/REAL/DOUBLE PRECISION

The following table lists the client representations for the Teradata FLOAT/REAL/DOUBLE PRECISION data type.

Determining the application definitions and client data types is the responsibility of the application programmer.

Client CPU Architecture Client Representation
IBM mainframe Eight byte 64-bit (double precision) floating point number, most significant byte first, with the attributes as follows:
  • 1 bit represents the sign of the fraction.
  • 7 bits represent the unsigned power of 16 exponent stored as actual plus X’40’.
  • 56 bits represent the unsigned fraction.
UTS Eight byte 64-bit (double precision) floating point number, most significant byte first, with the attributes as follows:
  • 1 bit represents the sign of the fraction.
  • 7 bits represent the unsigned power of 16 exponent stored as actual plus X’40’.
  • 56 bits represent the unsigned fraction.
  • RISC
  • Motorola 68000
  • WE 32000
Eight byte 64-bit (double precision) floating point number, most significant byte first, with the attributes as follows:
  • 1 bit represents the sign of the fraction.
  • 11 bits represent the unsigned power of 2 exponent stored as actual plus X’3FFH’.
  • 52 bits represent the unsigned fraction.
Intel Eight byte 64-bit (double precision) floating point number, least significant byte first, with the attributes as follows:
  • 1 bit represents the sign of the fraction.
  • 11 bits represent the unsigned power of 2 exponent stored as actual plus X’3FFH’.
  • 52 bits represent the unsigned fraction.

Example: FLOAT Data Type

In the following table definition, column SalaryFactor is a FLOAT data type:

CREATE TABLE Salaries
  (Id CHAR(9)
  ,SalaryFactor FLOAT BETWEEN .1 AND 1E1 );

Related Topics

FOR information on … SEE …
potential problems associated with floating point values in comparisons and computations Operations on Floating Point Values.
rounding and FLOAT/REAL/DOUBLE PRECISION types Rounding.