MAPREDUCE服务 MRS-十进制函数和操作符:二进制算术decimal运算符

时间:2024-11-28 20:08:11

二进制算术decimal运算符

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

运算

结果类型精度

结果类型范围

x + y和x - y

min(38, 1 + min(xs, ys) + min(xp - xs, yp - ys) )

max(xs, ys)

x * y

min(38, xp + yp)

xs + ys

x / y

min(38, xp + ys + max(0, ys-xs) )

max(xs, ys)

x % y

min(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)。

support.huaweicloud.com/cmpntguide-lts-mrs/mrs_01_300199.html