For numeric and decimal datatypes, each combination of precision and scale is a distinct Adaptive Server datatype. If you perform arithmetic on two numeric or decimal values:
n1 with precision p1 and scale s1, and
n2 with precision p2 and scale n2
Adaptive Server determines the precision and scale of the results as shown in Table 1-3:
Operation |
Precision |
Scale |
---|---|---|
n1 + n2 |
max(s1, s2) + max(p1 -s1, p2 - s2) + 1 |
max(s1, s2) |
n1 - n2 |
max(s1, s2) + max(p1 -s1, p2 - s2) + 1 |
max(s1, s2) |
n1 * n2 |
s1 + s2 + (p1 - s1) + (p2 - s2) + 1 |
s1 + s2 |
n1 / n2 |
max(s1 + p2 + 1, 6) + p1 - s1 + p2 |
max(s1 + p2 -s2 + 1, 6) |