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

最佳答案

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

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


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


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

关于mysql - MySQL数据类型DOUBLE(n,0)和BIGINT(in)之间有什么区别吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50431351/

10-12 17:08
查看更多