SET CURRENT DECFLOAT ROUNDING MODE

SET CURRENT DECFLOAT 舍入方式语句更改 CURRENT DECFLOAT 舍入方式专用寄存器的值。

调用

此语句可嵌入应用程序中或者以交互方式发出。 它是可以动态准备的可执行语句。

授权

如果在语句中引用了全局变量,那么该语句的授权标识所拥有的特权必须至少包含下列其中一项:

  • 对于语句中标识的全局变量,
    • 对全局变量的 READ 特权,以及
    • 对包含全局变量的模式的 USAGE 特权
  • 数据库管理员权限

语法

读取语法图跳过可视语法图SET CURRENT DECFLOAT ROUNDING MODE = ROUND_CEILINGROUND_DOWNROUND_FLOORROUND_HALF_DOWNROUND_HALF_EVENROUND_HALF_UPROUND_UP变量string-常量

描述

ROUND_CEILING
向正无穷舍入。 如果所有废弃的数字都为零,或者如果符号为负数,那么除除去废弃的数字外,结果保持不变。 否则结果系数增 1(向上舍入)。
ROUND_DOWN
向零舍入(截断)。 忽略废弃的数字。
ROUND_FLOOR
向负无穷舍入。 如果所有废弃位为零或者符号为正,那么结果不变,只是除去了废弃位。 否则结果为负,并且结果系数增 1。
ROUND_HALF_DOWN
舍入为最近的整数;如果等距,请向下舍入。 如果废弃位表示为大于左边一位的值的一半(0.5),那么结果系数增 1(向上舍入)。 否则废弃位被忽略。

在创建可移植应用程序时,建议不要使用此舍入方式,因为对于浮点运算, IEEE 草案标准不支持此舍入方式。

ROUND_HALF_EVEN
舍入为最近的整数;如果等距,请使用此方式舍入,以便最终数字为偶数。 如果废弃位表示为大于左边一位的值的一半(0.5),那么结果系数增 1(向上舍入)。 如果它们小于一半,那么不会调整结果系数(即,忽略所废弃的数字)。 如果它们表示为正好一半,那么最右边一位为偶数时结果系数不变,最右边一位为奇数时结果系数增 1(以形成偶数位)。
ROUND_HALF_UP
舍入为最近的整数;如果等距,请向上舍入。 如果废弃位表示为大于或等于左边一位的值的一半(0.5),那么结果系数增 1(向上舍入)。 否则废弃位被忽略。
ROUND_UP
以远离零的方式进行舍入。 如果所有废弃位为零,那么结果不变,只是除去了废弃位。 否则结果系数增 1(向上舍入)。

在创建可移植应用程序时,建议不要使用此舍入方式,因为对于浮点运算, IEEE 草案标准不支持此舍入方式。

字符串常数
包含舍入方式规范的字符常量。
变量
指定一个变量,该变量包含 CURRENT DECFLOAT 舍入方式的值。 内容未折叠为大写。

变量:

  • 必须是字符串或 Unicode 图形字符串变量。
  • 不得后跟指示符变量。
  • 必须包含七个舍入方式关键字之一。
  • 如果变量为固定长度,那么必须在右边填充空格。

注意

事务注意事项: SET CURRENT DECFLOAT 舍入方式语句不是可落实的操作。 ROLLBACK 对 CURRENT DECFLOAT 舍入方式没有影响。

初始 CURRENT DECFLOAT 舍入方式: 激活组中 CURRENT DECFLOAT 舍入方式的初始值由激活组中执行的第一个 SQL 语句建立。
  • 如果从 SQL 程序或 SQL 程序包执行激活组中的第一个 SQL 语句,那么 CURRENT DECFLOAT 舍入方式专用寄存器将设置为 DECFLTRND 参数的值。
  • 否则,初始值为 ROUND_HALF_EVEN。

CURRENT DECFLOAT 舍入方式作用域是激活组。

示例

示例 1: 使用字符串常量和关键字将 CURRENT DECFLOAT 舍入方式专用寄存器设置为 ROUND_DOWN。

  SET CURRENT DECFLOAT ROUNDING MODE = 'ROUND_DOWN'
  SET CURRENT DECFLOAT ROUNDING MODE = ROUND_DOWN