饱和数学函数
工具包TimescaleDB 工具包函数在 Timescale 社区版中可用。它们在 Timescale 中自动包含,但必须为自托管的 TimescaleDB 单独安装。单击以了解更多信息。简介
饱和数学超函数可帮助您对整数执行饱和数学运算。在饱和数学中,最终结果是有限制的。如果普通数学运算的结果超过最小或最大边界,则相应饱和数学运算的结果将限制在边界处。例如,2 + (-3) = -1
。但在最小边界为0
的饱和数学函数中,例如saturating_add_pos
,结果为0
。
您可以使用饱和数学来确保您的结果不会溢出允许的整数范围,或强制结果大于或等于零。
警告
此函数组包括一些实验性函数。实验性函数可能会在将来的版本中更改或删除。我们不建议在生产环境中使用它们。实验性函数标记有实验性标签。
函数
- saturating_add
- 实验性将两个数字相加,在 32 位整数边界处饱和而不是溢出
- saturating_add_pos
- 实验性将两个数字相加,在 0 处饱和作为最小边界
- saturating_mul
- 实验性将两个数字相乘,在 32 位整数边界处饱和而不是溢出
- saturating_sub
- 实验性从另一个数字中减去一个数字,在 32 位整数边界处饱和而不是溢出
- saturating_sub_pos
- 实验性从另一个数字中减去一个数字,在 0 处饱和作为最小边界
saturating_add(x INT,y INT) RETURNS INT
saturating_add
函数将两个数字相加,在 -2,147,483,648 和 2,147,483,647 处饱和而不是溢出。
必需参数
名称 | 类型 | 描述 |
---|---|---|
x | INT | 一个要添加到y 的整数 |
y | INT | 一个要添加到x 的整数 |
返回
列 | 类型 | 描述 |
---|---|---|
saturating_add | INT | x + y 的结果,在数字边界处饱和而不是溢出。数字边界是 32 位有符号整数的上限和下限。 |
saturating_add_pos(x INT,y INT) RETURNS INT
saturating_add_pos
函数将两个数字相加,在 0 和 2,147,483,647 处饱和而不是溢出。
必需参数
名称 | 类型 | 描述 |
---|---|---|
x | INT | 一个要添加到y 的整数 |
y | INT | 一个要添加到x 的整数 |
返回
列 | 类型 | 描述 |
---|---|---|
saturating_add_pos | INT | x + y 的结果,在 0 处饱和作为最小边界。 |
saturating_mul(x INT,y INT) RETURNS INT
saturating_mul
函数将两个数字相乘,在 -2,147,483,648 和 2,147,483,647 处饱和而不是溢出。
必需参数
名称 | 类型 | 描述 |
---|---|---|
x | INT | 一个要与y 相乘的整数 |
y | INT | 一个要与x 相乘的整数 |
返回
列 | 类型 | 描述 |
---|---|---|
saturating_mul | INT | x * y 的结果,在数字边界处饱和而不是溢出。数字边界是 32 位有符号整数的上限和下限。 |
saturating_sub(x INT,y INT) RETURNS INT
saturating_sub
函数从第一个数字中减去第二个数字,在 -2,147,483,648 和 2,147,483,647 处饱和而不是溢出。
必需参数
名称 | 类型 | 描述 |
---|---|---|
x | INT | y 要从中减去的整数 |
y | INT | 要从x 中减去的整数 |
返回
列 | 类型 | 描述 |
---|---|---|
saturating_add | INT | x - y 的结果,在数字边界处饱和而不是溢出。数字边界是 32 位有符号整数的上限和下限。 |
saturating_sub_pos(x INT,y INT) RETURNS INT
saturating_sub_pos
从第一个数字中减去第二个数字,在 0 和 2,147,483,647 处饱和而不是溢出。
必需参数
名称 | 类型 | 描述 |
---|---|---|
x | INT | y 要从中减去的整数 |
y | INT | 要从x 中减去的整数 |
返回
列 | 类型 | 描述 |
---|---|---|
saturating_sub_pos | INT | x - y 的结果,在 0 处饱和作为最小边界。 |
关键词
发现此页面上的问题?报告问题 或 在 GitHub 中编辑此页面。