MySQL中的浮点类型

时间:2010-08-26 13:11:32

标签: sql mysql

我有一个MySQL表,其列类型为float(10,6)。

如果我在列中插入30.064742,则存储在数据库中的值为30.064741.。

为什么?

2 个答案:

答案 0 :(得分:4)

浮点数意味着一定程度的不精确。如果您需要确保保留每个数字,请使用DECIMAL列。

答案 1 :(得分:2)

将数字舍入到可以存储在数据库中的精度是一个普遍的问题。浮点数将四舍五入为2的幂的倍数。如果你想要一些更容易思考的东西,你可以使用十进制类型,它将舍入到十的幂。

numeric types的文档中的更多详细信息:

  

如果为这样的列分配的小数点后面的位数多于指定比例所允许的值,则该值将转换为该比例。 (精确的行为是特定于操作系统的,但通常效果是截断到允许的位数。)