假设我有两个数字 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
。根据相乘的数字,实际精度可能低于此值。
示例
从可以存储为 DECIMAL(2,1)
的数字开始:
SELECT 9.9 * 9.9;
给出 98.01
可以存储为 DECIMAL(4,2)
。
SELECT 9.9 * 0.5;
给出 4.95
可以存储为 DECIMAL(3,2)
关于mysql - (Mysql中小数乘法的精度和小数位数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12500516/