如何停止mysql舍入浮点值?

Mik*_*mar 4 mysql floating-accuracy

我将货币值以浮点数形式存储在mysql表中。

问题是,mysql正在向上或向下舍入数字。

例如 12345.68取整为12345.7

如何停止此操作,还是应该使用更好的数据类型?

我想保留2个小数位内的原始值。

Iva*_*iev 7

不要使用FLOAT文字。使用DECIMAL代替。浮点数会将十进制数转换为二进制数,从而导致舍入(精度损失)。小数将数字存储为小数-不进行转换。

在您的情况下,将列定义为DECIMAL(12,2)可以。根据数字的预期大小选择宽度(第一个数字)。在示例中,预期大小为12位数字(包括小数点后的数字)。