MySQL操作符';双精度

MySQL操作符';双精度,mysql,precision,Mysql,Precision,我试图在MySQL(InnoDb)中存储一个货币值,我需要编写查询来聚合一些记录(sum),但输出的精度有问题 我已经将字段的类型设置为double,并且我的值是精确的,但是MySQL的运算符并没有我需要的精确。值得一提的是,PHP的默认运算符也不够精确,但PHP中有bc*函数可以实现这一点 我想知道是否有办法调整MySQL操作符的精度?包括聚合函数 作为记录,存储到MySQL和从MySQL检索不会影响我的值,这意味着double是我的字段的理想类型。因为货币需要精确的表示,所以不要使用类似于浮

我试图在MySQL(InnoDb)中存储一个货币值,我需要编写查询来聚合一些记录(sum),但输出的精度有问题

我已经将字段的类型设置为double,并且我的值是精确的,但是MySQL的运算符并没有我需要的精确。值得一提的是,PHP的默认运算符也不够精确,但PHP中有
bc*
函数可以实现这一点

我想知道是否有办法调整MySQL操作符的精度?包括聚合函数


作为记录,存储到MySQL和从MySQL检索不会影响我的值,这意味着double是我的字段的理想类型。

因为货币需要精确的表示,所以不要使用类似于浮点值的近似数据类型。您可以使用定点数字数据类型进行类似操作

 numeric(15,2)
  • 15为精度(值的总长度,包括小数点)
  • 2是小数点后的位数
见:

当需要保持精确精度时(例如对于货币数据),可以使用这些类型