2012-09-19 88 views
4

假设我有两个数字num1(p1,s1)num2(p2, s2)(其中ps分别是精度和刻度)。(My)中的小数乘法的精度和小数位数SQL

计算num1num2结果的精度和标度的规则是什么?

直观上,比例尺将是s1s2的总和(因为这就是你如何在1年级进行乘法运算!),但是我找不到找到精度的规则。

谢谢。

回答

1

我相信你已经声明了两个数字像下面这样,在你的问题的语法不是SQL:

CREATE TABLE decimals (num1 DECIMAL(p1,s1), num2 DECIMAL(p2,s2)); 

的精度只是位数的号码存储到,规模是这些小数点后的数量。

所以,你是正确的,规模为乘法的结果将是s1 + s2,但最大精度也将总和p1 + p2。实际的精度可能会低于这个取决于数量的乘积。

与可以存储为DECIMAL(2,1)号码开始:

SELECT 9.9 * 9.9; 

给出98.01其可以被存储为DECIMAL(4,2)

SELECT 9.9 * 0.5; 

给出4.95其可以被存储为DECIMAL(3,2)