我用的navicat+mysql,在navicat里建了个float字段,但是他老是四舍五入,只保留整数部分.请问怎么在navicat设置该字段的精度?

解决方案 »

  1.   

    show create table xxx显示一下你的表结构。
      

  2.   

    如果你用的是float ,由浮点数本身就存在精度问题,所有无法准确的表示一些小数。但它计算快。如果要精确的表示小数,你可以使用 decimal (n,m) 这种数据类型。
      

  3.   

    用float和decimal都一样,我用navicat直接建立的字段,我就是奇怪如何用navicat来设置,找不到哪里设置,小数都会被四舍五入成整数
      

  4.   

    show create table xxx贴一下你的表结构。
      

  5.   

    +-----------+--------------+------+-----+---------+----------------+
    | Field     | Type         | Null | Key | Default | Extra          |
    +-----------+--------------+------+-----+---------+----------------+
    | id        | int(11)      | NO   | PRI | NULL    | auto_increment |
    | r_id      | varchar(8)   | NO   |     | id      |                |
    | r_content | varchar(200) | NO   |     |         |                |
    | r_stan1   | varchar(60)  | NO   |     |         |                |
    | r_tscore  | float(4,0)   | NO   |     |         |                |
    | r_stan2   | varchar(60)  | YES  |     | NULL    |                |
    | r_hscore  | float(5,0)   | YES  |     | NULL    |                |
    | r_stan3   | varchar(60)  | YES  |     | NULL    |                |
    | r_nscore  | float(5,0)   | YES  |     | NULL    |                |
    | r_rule    | varchar(1)   | NO   |     |         |                |
    +-----------+--------------+------+-----+---------+----------------+这是命令行显示的结构,float应该是float(4,2)才对,用命令行如何修改.
    关键是我现在用的是可视化的navicat,不知道怎样去修改,请指教
      

  6.   

    mysql> create table t_c00757341 (id int primary key,r_tscore float(5,0));
    Query OK, 0 rows affected (0.08 sec)mysql> desc t_c00757341;
    +----------+------------+------+-----+---------+-------+
    | Field    | Type       | Null | Key | Default | Extra |
    +----------+------------+------+-----+---------+-------+
    | id       | int(11)    | NO   | PRI | NULL    |       |
    | r_tscore | float(5,0) | YES  |     | NULL    |       |
    +----------+------------+------+-----+---------+-------+
    2 rows in set (0.02 sec)mysql> alter table t_c00757341 modify r_tscore float(5,2);
    Query OK, 0 rows affected (0.05 sec)
    Records: 0  Duplicates: 0  Warnings: 0mysql> desc t_c00757341;
    +----------+------------+------+-----+---------+-------+
    | Field    | Type       | Null | Key | Default | Extra |
    +----------+------------+------+-----+---------+-------+
    | id       | int(11)    | NO   | PRI | NULL    |       |
    | r_tscore | float(5,2) | YES  |     | NULL    |       |
    +----------+------------+------+-----+---------+-------+
    2 rows in set (0.01 sec)mysql>