MySQL:大数字的字段类型是什么?

sun*_*rop 5 mysql

我需要存储一些大数字,一些带有小数点(2 位数)。

  • 965.630,5 INT
  • 47.320.500 INT
  • -62.188,0 INT
  • 32.8% 浮动
  • 225.165,7 双
  • 715.100,7 双
  • 6.929.850,0 双

我不确定什么类型是正确的。我不明白 DOUBLE 和 FLOAT 之间的区别。什么时候使用 DECIMAL/NUMERIC?希望有人能帮忙。请不要链接到 MySQL 文档。我不明白他们写了什么:-(

Der*_*ney 7

首先,如果您想使用小数点,您可以INT从列表中划掉。

接下来,您需要了解FLOATDOUBLE相似,因为它们以近似值存储值,但这DOUBLE是 8 字节,并且FLOAT是 4 字节。所以对于更大的数字,你会想要DOUBLE而不是FLOAT.

现在,选择是在DOUBLEDECIMALDECIMAL可以有 65 位数字)之间。MySQL 告诉我们,对于DOUBLE列,该值将四舍五入以适合列大小。它还表示,对于DECIMAL,行为由操作系统决定。它将 ROUND 或截断不适合该列的数字。

我的建议是从上面的描述中选择您认为满足您需求的列类型(DECIMALDOUBLE),并插入一些测试数据以查看存储行为是否符合您的预期。

此外,如果您对这些列进行任何比较,请确保比较符合您的预期: 2.145<>2.140