mysql - (Mysql中小数乘法的精度和小数位数

标签 mysql decimal scale precision

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

num1num2的结果的精度和小数位数的计算规则是什么?

直觉上,比例是 s1s2 的总和(因为这是一年级做乘法的方式!),但我无法弄清楚寻找精度的规则。

谢谢。

最佳答案

我假设您已将这两个数字声明为如下所示,因为您问题中的语法不是 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/

相关文章:

尽管格式有效,MySQL str_to_date 仍生成 NULL

php - 如何使用一个 SQL 查询从两个表中获取结果?

mysql 按总计进行分组查询

c# - Decimal.TryParse 不解析我的十进制值

c# - 如何精确反序列化十进制属性

MySQL 十进制内存使用情况(有符号 v 无符号)

swift - 创建一个函数来将 uiimageview 嵌套在 uiview 上

r - 如何使用scale_fill_gradient指定 "low"和 "high"并在两端获得两个音阶

mysql - 以一种棘手的方式连接 MySQL 表

Flutter - 如何在不运行类似 CustomPainter 绘制方法的情况下移动和缩放 Canvas 绘图?