我正在尝试在MySQL(InnoDb)中存储货币值,我需要编写查询来聚合一些记录(总和),而且我对输出的精度有问题!
我已经将字段的类型设置为double,而我的值是精确的,但MySQL的运算符并不像我需要的那样精确。对于它的价值,PHP的默认运算符也不够精确,但PHP中的bc*
函数可以解决这个问题。
我想知道是否有办法调整MySQL运营商的精度?包括聚合函数?
对于记录,存储到MySQL并从MySQL检索不会影响我的值,这意味着double是我的字段的理想类型。
答案 0 :(得分:1)
由于资金需要精确表示,因此不要使用仅与double
近似的数据类型,这是一个浮点数。您可以使用定点数字数据类型,如
numeric(15,2)
在保持精确精确度很重要时使用这些类型,例如使用货币数据。