DOUBLE(n,0)和BIGINT(n)MySQL数据类型之间有什么区别吗?

时间:2018-05-20 03:16:55

标签: mysql

有没有理由在MySQL的BIGINT(n)上使用DOUBLE(n,0)?如果数据永远不会有小数部分,是否有任何理由存储为DOUBLE?

1 个答案:

答案 0 :(得分:2)

在MySQL中使用DOUBLEFLOAT只有一个原因 - 如果规模和/或存储效率很重要,但精度不是。这不是MySQL的限制,而是一般的浮点数,即它们存储为近似值。

整数将被干净地存储到最多只有2⁵³,小于BIGINT。超出该范围的大多数(尽管不是全部)整数将被存储为仅接近正确的值。

  

浮点数有时会引起混淆,因为它们是近似值而不是存储为精确值。在SQL语句中写入的浮点值可能与内部表示的值不同。尝试将浮点值视为比较中的精确值可能会导致问题。它们还受平台或实现依赖性的影响。

     

- Problems with Floating Point Values

对于整数,请使用*INT类型之一。对于十进制,请使用DECIMAL