DB2 Version 9.7 for Linux, UNIX, and Windows

DecimalFloatRoundingMode CLI/ODBC configuration keyword

Sets the rounding mode when working with servers that support the DECFLOAT SQL type.

db2cli.ini keyword syntax:
DecimalFloatRoundingMode = 0 | 1 | 2 | 3 | 4
Default setting:
0 (Half even rounding mode)
Equivalent connection attribute:
SQL_ATTR_DECFLOAT_ROUNDING_MODE
Usage notes:

The decimal float rounding mode determines what type of rounding will be used if a value is put into a DECFLOAT variable or column but the value has more digits than are allowed in the DECFLOAT data type. This can occur when inserting, updating, selecting, converting from another type, or as the result of a mathematical operation.

The value of SQL_ATTR_DECFLOAT_ROUNDING_MODE determines the decimal float rounding mode that will be used for new connections unless another mode is specified by a connection attribute for that connection. For any given connection both CLI and DB2® will use the same decimal float rounding mode for all action initiated as part of that connection.

When your applications are connecting to a DB2 for Linux, UNIX, and Windows Version 9.5 server, you must set the decimal float rounding mode on the database client to the same mode that is set on the server. If you set the decimal float rounding mode on the client to a value that is different from the decimal float rounding mode that is set on the database server, the database server will return SQL0713N on connection.

The settings correspond to these decimal float rounding modes:

  • 0 = Half even (default)
  • 1 = Half up
  • 2 = Down
  • 3 = Ceiling
  • 4 = Floor

The different modes are:

Half even (default)
In this mode CLI and DB2 use the number that will fit in the target variable and that is closest to the original value. If two numbers are equally close, they use the one that is even. This mode produces the smallest rounding errors over large amounts of data.
Half up
In this mode CLI and DB2 use the number that will fit in the target variable and that is closest to the original value. If two numbers are equally close, they use the one that is greater than the original value.
Down
In this mode CLI and DB2 use the number that will fit in the target variable and that is closest to the original value and for which the absolute value is not greater than the absolute value of the original value. You can also think of this as rounding toward zero or as using ceiling for negative values and using floor for positive values.
Ceiling
In this mode CLI and DB2 use the smallest number that will fit in the target variable and that is greater than or equal to the original value.
Floor
In this mode CLI and DB2 use the largest number that will fit in the target variable and that is less than or equal to the original value.

This attribute is not supported when accessing IDS data servers.