mysql往数据库插入float类型的数据 为什么数字不对?

insert into table2(p_id,f_1,f_2)values(1, 0.0, 0.027592998);
在数据库看到的结果是:

怎么保证插入是什么 数据库就显示什么呢 怎么解决

float类型可以存浮点数,但是float有缺点,当不指定小数位数的时候,就会出现小数位数与想要的不一致,导致“报错”。在创建浮点类型的时候必须指定小数位数,float(m,d),m表示的是最大长度,d表示的显示的小数位数。

虽然滑伍两个类型的值有相似也有不相似,但定义的是float、插入的值只要不出错正仔肯定是float类型,10表示该值一共显示10位整数,其中3位位于小数点后面。

扩展资料:

浮点包可以将二进制浮点数存储为非标准化数,而不使用刚刚介绍的信清或存储方法。“非标准化数”是带有保留指数值的非零浮点数,其中尾数的最高有效位为 0。

通过使用非标准化格式,浮点数的范围可以扩展,但会失去精度。您无法控制浮点数以标准化形式还是非标准化形式表示;浮点包决定了表示形式。浮点包从不使用非标准化形式,除非指数变为小于可以标准化形式表示的最小值。

参考资料来源:百度百科-FLOAT


float类型可以存浮点数(即小数类型),但是float有个缺点的,当不指定小数位数的时候,那么袭卜它就会出现小数位数与想要的不一致,导致“报错”(此错误可能是位数不对,也可能是数值不对)。燃顷
备注:所以在创建浮点类型的时候必须指定小数位数,float(m,d),m表示的是最大长度,d表示的显示的拍段穗小数位数,所以在初始化的过程中指点一下即可。
这个应该跟你表结构字段类型float(m,d),d:小数点后面的数字个数有关系吧
http://blog.csdn.net/hugeheadhuge/article/details/6440526
讲派州告的挺详细的,你尘明看看。还有其他的浮点迹中类型。
精确数字字脊侍段类皮高型樱握吵用decimal
http://zhidao.baidu.com/link?url=Jk10ZLwZeWs1wHfnXqTbizUZJTw7OO9skLHqa03gA_wZYUZKel2MWyyUZzs5Tx6_k4gWdYffwhlHU4wyWOdJJq