如果没有,应该使用什么?
我很惊讶我没有在堆栈上找到关于此的问题。
答案 0 :(得分:1)
对于小数,您可以使用十进制数据类型或双数据类型。
但是,您可能想要使用FLOAT数据类型,这可能会在某些情况下导致问题
如果存储数字13.59,则在FLOAT数据类型的情况下,它将首先转换为二进制数字然后存储。检索数据时,二进制文件将转换为十进制,然后显示。但这里的问题是13.59无法用有限数量的二进制数字来描述。
13.59的二进制将是1101.1001011 ......当检索回来时将是13.59000015258789 ......
因此,如果您在任何查询中将此值与13.59进行比较,则会得到错误的结果。
Decimal和Double不会导致此问题,因为它们不存储二进制文件。
最好的建议是避免Float