Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql (My)SQL中十进制乘法的精度和小数位数_Mysql_Decimal_Scale_Precision - Fatal编程技术网

Mysql (My)SQL中十进制乘法的精度和小数位数

Mysql (My)SQL中十进制乘法的精度和小数位数,mysql,decimal,scale,precision,Mysql,Decimal,Scale,Precision,假设我有两个数字num1(p1,s1)和num2(p2,s2)(其中p和s分别是精度和比例) 计算num1次num2结果的精度和比例的规则是什么 直观地说,量表应该是s1和s2的总和(因为一年级的学生就是这样做乘法的!),但我无法找出求精度的规则 谢谢。我猜您已经声明了两个数字,类似于以下内容,因为您问题中的语法不是SQL: CREATE TABLE decimals (num1 DECIMAL(p1,s1), num2 DECIMAL(p2,s2)); 精度只是数字存储到的位数,刻度是小数点

假设我有两个数字
num1(p1,s1)
num2(p2,s2)
(其中
p
s
分别是精度和比例)

计算
num1
num2
结果的精度和比例的规则是什么

直观地说,量表应该是
s1
s2
的总和(因为一年级的学生就是这样做乘法的!),但我无法找出求精度的规则


谢谢。

我猜您已经声明了两个数字,类似于以下内容,因为您问题中的语法不是SQL:

CREATE TABLE decimals (num1 DECIMAL(p1,s1), num2 DECIMAL(p2,s2));
精度只是数字存储到的位数,刻度是小数点后的位数

因此,乘法结果的小数位数是
s1+s2
,但最大精度也是和
p1+p2
。根据乘以的数字,实际精度可能小于此值

示例

从可存储为十进制(2,1)的数字开始:

给出
98.01
,可存储为
十进制(4,2)

给出
4.95
,可存储为
十进制(3,2)

SELECT 9.9 * 9.9;
SELECT 9.9 * 0.5;