SET CURRENT DECFLOAT ROUNDING MODE
SET CURRENT DECFLOAT 舍入方式语句更改 CURRENT DECFLOAT 舍入方式专用寄存器的值。
调用
此语句可嵌入应用程序中或者以交互方式发出。 它是可以动态准备的可执行语句。
授权
如果在语句中引用了全局变量,那么该语句的授权标识所拥有的特权必须至少包含下列其中一项:
- 对于语句中标识的全局变量,
- 对全局变量的 READ 特权,以及
- 对包含全局变量的模式的 USAGE 特权
- 数据库管理员权限
语法
描述
- 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