decimal 函数和运算符

decimal 字面量

可以使用 DECIMAL 'xxxxxxx.yyyyyyy' 语法来定义 DECIMAL 类型的字面量。

DECIMAL 类型的字面量精度将等于字面量(包括尾随零和前导零)的位数。范围将等于小数部分(包括尾随零)的位数。

示例字面量数据类型
DECIMAL '0'DECIMAL(1)
DECIMAL '12345'DECIMAL(5)
DECIMAL '0000012345.1234500000'DECIMAL(20, 10)

二进制算术 decimal 运算符

支持标准数学运算符。下表说明了结果的精度和范围计算规则。假设 x 的类型为 DECIMAL(xp, xs)y 的类型为 DECIMAL(yp, ys)

运算结果类型精度结果类型范围
x + yx - ymin(38, 1 + min(xs, ys) + min(xp - xs, yp - ys) )max(xs, ys)
x * ymin(38, xp + yp)xs + ys
x / ymin(38, xp + ys + max(0, ys-xs) )max(xs, ys)
x % ymin(xp - xs, yp - ys) + max(xs, bs)max(xs, ys)

如果运算的数学结果无法通过结果数据类型的精度和范围精确地表示,则发生异常情况:Value is out of range

当对具有不同范围和精度的 decimal 类型进行运算时,值首先被强制转换为公共超类型。对于接近于最大可表示精度 (38) 的类型,当一个操作数不符合公共超类型时,这可能会导致“值超出范围”错误。例如,decimal(38, 0) 和 decimal(38, 1) 的公共超类型是 decimal(38, 1),但某些符合 decimal(38, 0) 的值无法表示为 decimal(38, 1)。

比较运算符

所有标准比较运算符和 BETWEEN 运算符都适用于 DECIMAL 类型。

一元 decimal 运算符

- 运算符执行取负运算。结果的类型与参数的类型相同。

有奖捉虫

“有虫”文档片段

0/500

存在的问题

文档存在风险与错误

● 拼写,格式,无效链接等错误;

● 技术原理、功能、规格等描述和软件不一致,存在错误;

● 原理图、架构图等存在错误;

● 版本号不匹配:文档版本或内容描述和实际软件不一致;

● 对重要数据或系统存在风险的操作,缺少安全提示;

● 排版不美观,影响阅读;

内容描述不清晰

● 描述存在歧义;

● 图形、表格、文字等晦涩难懂;

● 逻辑不清晰,该分类、分项、分步骤的没有给出;

内容获取有困难

● 很难通过搜索引擎,openLooKeng官网,相关博客找到所需内容;

示例代码错误

● 命令、命令参数等错误;

● 命令无法执行或无法完成对应功能;

内容有缺失

● 关键步骤错误或缺失,无法指导用户完成任务,比如安装、配置、部署等;

● 逻辑不清晰,该分类、分项、分步骤的没有给出

● 图形、表格、文字等晦涩难懂

● 缺少必要的前提条件、注意事项等;

● 描述存在歧义

0/500

您对文档的总体满意度

非常不满意
非常满意

请问是什么原因让您参与到这个问题中

您的邮箱

创Issue赢奖品
根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
有奖捉虫