我将货币值作为浮动存储在mysql表中。
问题是,mysql正在将数字向上或向下舍入。
例如。12345.68被四舍五入到12345.7
如何才能阻止这种情况,或者是否应该使用更好的数据类型?
我想保留小数点2位内的原始值。
发布于 2017-01-05 18:36:00
不要使用FLOAT类型。使用DECIMAL代替。浮点数将十进制数字转换为二进制数,这会导致舍入(精度损失)。十进制将数字存储为小数-没有转换。
在您的例子中,将列定义为DECIMAL(12,2)应该是可以的。根据数字的预期大小选择宽度(第一个数字)。在本例中,预期大小为12位(包括小数点后的数字)。
https://stackoverflow.com/questions/41492160
复制相似问题