我的 MySQL 表中有一些数据被错误地存储为 float
数据类型。例如:
7.45
我需要将该数据转换为十进制
类型,这样我就不会遇到舍入错误。
如果我这样做:
ALTER TABLE `invoice_line`
CHANGE `line_quantity` `line_quantity` decimal(18,6) unsigned NOT NULL AFTER `line_rate`;
我最终在表中得到这样的值:
70.449997
如何在不破坏数据的情况下正确地将数据转换为十进制
?
最佳答案
我会使用诸如mysqldump
之类的东西(或者MySQL Workbench也有一个实用程序)来转储表。然后执行 ALTER
并重新创建它。仅仅增加精度就会引入这样的错误,因为无论如何 float 通常都是不精确的。
关于MySQL将float字段中的数据转换为decimal字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22999799/