FLOAT/REAL/DOUBLE PRECISION Data Types | Teradata Vantage - FLOAT/REAL/DOUBLE PRECISION Data Types - Advanced SQL Engine - Teradata Database

SQL Data Types and Literals

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
17.00
Published
June 2020
Language
English (United States)
Last Update
2021-01-22
dita:mapPath
zsn1556242031050.ditamap
dita:ditavalPath
lze1555437562152.ditaval
dita:id
B035-1143
lifecycle
previous
Product Category
Teradata Vantage™

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

Syntax

{ FLOAT | REAL | DOUBLE PRECISION } [ attributes [...] ]
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.