Tinyin不允许小数mysql/mariadb吗?

a0zr77ik  于 2021-06-21  发布在  Mysql
关注(0)|答案(1)|浏览(243)

如果没有,应该用什么来代替?
我很惊讶我还没有发现任何关于这个的问题。

uxh89sit

uxh89sit1#

对于小数,可以使用decimal数据类型或double数据类型。
但是,您可能会尝试使用float数据类型,这在某些情况下可能会导致问题
如果您存储的是数字13.59,在浮点数据类型的情况下,它将首先转换为二进制数字,然后存储。检索数据时,二进制将转换为十进制,然后显示。但这里的问题是13.59不能用有限个二进制数字来描述。
二进制13.59将是1101.1001011。。。。。。取回时为13.590001528789。。。
因此,如果在任何查询中将此值与13.59进行比较,将得到错误的结果。
十进制和双精度不会导致这个问题,因为它们不存储二进制。
最好的建议是避免浮动

相关问题