MySQL:FLOAT的问题

时间:2013-02-08 15:36:21

标签: mysql insert sql-types

我做了一张桌子:

CREATE TABLE IF NOT EXISTS vehicles (
    vehicleid INT(3),
    vehiclex FLOAT(6,6),
    vehicley FLOAT(6,6),
    vehiclez FLOAT(6,6),
    vehicleaw FLOAT(6,6),
    vehiclecolor1 INT(2),
    vehiclecolor2 INT(2)
)

现在,当我试图插入此内容时:

INSERT INTO vehicles (vehicleid,vehiclex,vehicley,vehiclez,vehicleaw,vehiclecolor1,vehiclecolor2)
VALUES(411,1786.9001,-1892.1359,13.4903,14.0000,0,0)

首先,现在出现错误,没有警告:)

我在SQL查询中遇到无效行:

SELECT * FROM `vehicles` ORDER BY `vehicles`.`vehiclez` ASC LIMIT 0, 30 ; 

结果 行:1

  车辆车辆车辆车辆车辆车辆车辆车辆车辆车辆车辆车辆车辆车辆车辆车辆车辆   411 0.999999 -0.999999 0.999999 0.999999 0 0

那么,我该怎么办?

1 个答案:

答案 0 :(得分:4)

FLOAT的第一个参数是总位数,而不是小数点之前可以出现的位数。

在您当前的代码中,总位数与小数点后可以出现的位数相同,因此存储的数字不能大于0.999999(或小于{{1} })。

尝试类似-0.999999的内容。