扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
float类型可以存浮点数,但是float有缺点,当不指定小数位数的时候,就会出现小数位数与想要的不一致,导致“报错”。在创建浮点类型的时候必须指定小数位数,float(m,d),m表示的是最大长度,d表示的显示的小数位数。
剑阁网站建设公司创新互联公司,剑阁网站设计制作,有大型网站制作公司丰富经验。已为剑阁上千提供企业网站建设服务。企业网站搭建\外贸营销网站建设要多少钱,请找那个售后服务好的剑阁做网站的公司定做!
虽然两个类型的值有相似也有不相似,但定义的是float、插入的值只要不出错肯定是float类型,10表示该值一共显示10位整数,其中3位位于小数点后面。
扩展资料:
浮点包可以将二进制浮点数存储为非标准化数,而不使用刚刚介绍的存储方法。“非标准化数”是带有保留指数值的非零浮点数,其中尾数的最高有效位为 0。
通过使用非标准化格式,浮点数的范围可以扩展,但会失去精度。您无法控制浮点数以标准化形式还是非标准化形式表示;浮点包决定了表示形式。浮点包从不使用非标准化形式,除非指数变为小于可以标准化形式表示的最小值。
参考资料来源:百度百科-FLOAT
参考文章:
mysql在进行不同类型的参数的运算时会产生隐式转换。其中,当需要把字符串转为浮点数的时,mysql从左边开始对字符串做转换处理的,转换规则如下:
mysql 怎么定义小数float怎么用
float(有效位数,小数位数)单精度浮点数,一般float(10,2)就够了
float数值类型用于表示单精度浮点数值,而double数值类型用于表示双精度浮点数值,float和double都是浮点型,而decimal是定点型;
MySQL 浮点型和定点型可以用类型名称后加(M,D)来表示,M表示该值的总共长度,D表示小数点后面的长度,M和D又称为精度和标度,如float(7,4)的 可显示为-999.9999,MySQL保存值时进行四舍五入,如果插入999.00009,则结果为999.0001。
FLOAT和DOUBLE在不指 定精度时,默认会按照实际的精度来显示,而DECIMAL在不指定精度时,默认整数为10,小数为0。
1、CREATE TABLE test(f FLOAT(5,2) DEFAULT NULL,d DOUBLE(5,2) DEFAULT NULL,de DECIMAL(5,2) DEFAULT NULL);
2、DESC test;
3、INSERT INTO test(f,d,de) VALUES(1.23,1.23,1.23);
数据插入都正确
4、INSERT INTO test(f,d,de) VALUES(1.234,1.234,1.23);
数据插入都正确,但是f和d由于标度的限制,舍去了最后一位。
5、INSERT INTO test(f,d,de) VALUES(1.234,1.234,1.234);
数据也插入成功,但是有一个警告提示:
1 queries executed, 1 success, 0 errors, 1 warnings
Note Code : 1265
Data truncated for column 'de' at row 1
6、将id1,id2,id3的精度和标度都去掉
ALTER TABLE test MODIFY f FLOAT;
ALTER TABLE test MODIFY d DOUBLE;
ALTER TABLE test MODIFY de DECIMAL;
DELETE FROM test;
DESC test;
7、INSERT INTO test(f,d,de) VALUES(1.234,1.234,1.234);
1 queries executed, 1 success, 0 errors, 1 warnings
Note Code : 1265
Data truncated for column 'de' at row 1
f和d的数据正确插入,而de被截断。
浮点数如果不写精度和标度,则会按照实际显示,如果有精度和标度,则会将数据四舍五入后插入,系统不报错,定点数如果不设置精度和标度,刚按照默认的(10,0)进行操作,如果数据超过了精度和标度值,则会警告!
同时,对数据求SUM()时会出现不同的结果,float和double求SUM都会出现很多小数点,而decimal求SUM得到的是精准数值:
8、INSERT INTO test(f,d,de) VALUES(1.234,0.01,1.23);
数据都插入成功
9、SELECT SUM(f),SUM(d),SUM(de) FROM test;
理论上SUM(f)=3.698,SUM(d)=2.474,SUM(de)=3.46,但f,d都出现后面很长的一串浮点小数点。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流