如果没有指定实现,这个问题可能不是非常有意义.
例如,在SQL Server中,float的最小精度为1.
其中n是用于以科学计数法存储浮点数的尾数的位数,因此,它决定了精度和存储大小.如果指定了n, 则它必须是1到53之间的值.n的默认值为53.
另一方面,在MySQL中,float(0)语法是有效的,但它听起来并不十分有意义.从规格:
MySQL还支持此可选的精度规范,但精度值仅用于确定存储大小.精度从0到23会产生一个四字节的单精度FLOAT列.精度从24到53会产生一个8字节的双精度DOUBLE列.
Oracle 有一个FLOAT数据类型,但它似乎只是NUMBER的别名,其最小精度为1:
具有精度p的NUMBER数据类型的子类型.FLOAT值在内部表示为NUMBER. 精度p的范围可以是1到126个二进制数字.FLOAT值需要1到22个字节.
因此,您可以看到答案是高度针对特定于实现的.我不确定ANSI SQL标准是否指定了FLOAT精度.他们可能没有.