MYSQL:不能在浮点字段上保存1000000

时间:2015-05-19 02:27:28

标签: mysql

我有一个浮动列,我试图保存值1000000.它会自动将其转换为1e + 06。我该如何解决?

3 个答案:

答案 0 :(得分:1)

这两件事是等价的:

  1e+06
= 1 * 10^6
= 1 * 1,000,000
= 1,000,000

它被称为科学记数法(见here)。 mySQL使用它来显示巨大/微小的值,尤其是近似值(参见here)。

答案 1 :(得分:1)

要将返回的值格式化为1000000,您只需将整数零添加到SELECT列表中的列。

SELECT mycol+0 AS mycol FROM mytable

MySQL正在存储值IEEE浮点格式。 (符号一位,指数的一定位数,以及尾数的一定位数。这实际上不是MySQL的东西,它是浮点值的标准表示。)

就返回的内容而言,这是将该值转换为字符串表示的问题。

浮点数具有大范围的值。要将float(3.402823e + 38)的最大值表示为十进制值,则需要38位十进制数字。值的七个最左边的数字是重要的,但我们需要添加另外32个零/数字来指示小数点的位置。

因此,返回科学记数法的字符串表示是返回值的表示的合理方法。

答案 2 :(得分:0)

你可以使用DOUBLE(8,3),其中8是总数。不包括小数点的数字,3是否。跟随小数的数字。