tinyint是否允许小数mysql / mariadb?

时间:2018-01-06 06:42:51

标签: mysql sql mariadb

如果没有,应该使用什么?

我很惊讶我没有在堆栈上找到关于此的问题。

1 个答案:

答案 0 :(得分:1)

对于小数,您可以使用十进制数据类型或双数据类型。

但是,您可能想要使用FLOAT数据类型,这可能会在某些情况下导致问题

如果存储数字13.59,则在FLOAT数据类型的情况下,它将首先转换为二进制数字然后存储。检索数据时,二进制文件将转换为十进制,然后显示。但这里的问题是13.59无法用有限数量的二进制数字来描述。

13.59的二进制将是1101.1001011 ......当检索回来时将是13.59000015258789 ......

因此,如果您在任何查询中将此值与13.59进行比较,则会得到错误的结果。

Decimal和Double不会导致此问题,因为它们不存储二进制文件。

最好的建议是避免Float