我们应该使用float作为sql-server中的主键

Buz*_*uzz 6 sql primary-key sql-server-2008

有人建议我使用float作为表的主键而不是使用BIGINT更好.我们可以使浮动主键成为身份吗?

Die*_*ego 9

注意事项:

  • 你可以制作一个浮点字段主键.
  • 你不能创建一个浮动字段IDENTITY.标识列必须是数据类型int,bigint,smallint,tinyint或十进制或数字,标度为0
  • 你绝对不应该使用浮点字段作为PK.再一次,你可以,SQL Server会允许你,但不推荐它主要是因为浮动是不准确的,如@Andy所说.

为什么你需要一个浮动作为PK呢?您是否需要像3,1234235234534这样的值来唯一标识您的行?


And*_*rew 5

请注意,如果您执行 float a=1f 和 float b=1f,它们是相同的吗?

然而, if(a==b) 可能不为真,因为浮点数不准确。