MySQL数据库之***mysql中经度纬度字段用什么存储(关于mysql的float和decimal区别)
小标 2018-08-17 来源 : 阅读 3813 评论 0

摘要:本文主要向大家介绍了MySQL数据库之***mysql中经度纬度字段用什么存储(关于mysql的float和decimal区别) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

本文主要向大家介绍了MySQL数据库之***mysql中经度纬度字段用什么存储(关于mysql的float和decimal区别) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

float,decimal精确度比较
 
float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,
用于定义货币要求精确度高的数据。在数据迁移中,float(M,D)是非标准定义,最好不要这样使用。M为精度,D为标度。


mysql>  create table t1(c1 float(10,2), c2 decimal(10,2),c3 float); // 10不包括小数点
mysql>  insert into t1 values(1234567.23, 1234567.23,1234567.23);mysql>  select * from t1;
数据显示与所用的客户端工具有关
1.在Toad for MySQL中的显示为
c1                    c2                            c3
1234567    1234567.23        1234570
2.在MySQL Query Browser中的显示为
c1                    c2                            c3
1234567.25    1234567.23        1.23457e+006
3.程序中取出数据
1234567          1234567.23        1234570
mysql> insert into t1 values(9876543.21, 9876543.12,9876543.21);
1.在Toad for MySQL中的显示为
c1                    c2                            c3
9876543       9876543.12            9876540
2.在MySQL Query Browser中的显示为
c1                    c2                            c3
9876543.00   9876543.12        9.87654e+006
3.程序中取出数据
9876543         9876543.12        9876540
mysql>  insert into t1 values(1.21, 1.12,1.21);
1.在Toad for MySQL中的显示为
c1                    c2                            c3
1.21                1.12                       1.21
2.在MySQL Query Browser中的显示为
c1                    c2                            c3
1.21               1.12                         1.21
3.程序中取出数据
1.21                1.12                        1.21
mysql>  insert into t1 values(1.2, 1.2,1.2);
1.在Toad for MySQL中的显示为
c1                    c2                            c3
1.2                  1.20                        1.2
2.在MySQL Query Browser中的显示为
c1                    c2                            c3
1.20                1.20                         1.2
3.程序中取出数据
1.2                   1.20                        1.2
mysql>  insert into t1 values(9876543.216, 9876543.126,9876543.216);
1.在Toad for MySQL中的显示为
c1                    c2                            c3
9876543        9876543.13           9876540
2.在MySQL Query Browser中的显示为
c1                    c2                            c3
9876543.00   9876543.13          9.87654e+006
3.程序中取出数据
9876543         9876543.13          9876540
mysql>  insert into t1 values(1.216, 1.126,1.216);
1.在Toad for MySQL中的显示为
c1                    c2                            c3
1.22                1.13                        1.216
2.在MySQL Query Browser中的显示为
c1                    c2                            c3
1.22               1.13                        1.216
3.程序中取出数据
1.22               1.13                        1.216
不定义fload, double的精度和标度时,存储按给出的数值存储,这于OS和当前的硬件有关。
decimal默认为decimal(10,0)
因为误差问题,在程序中,少用浮点数做=比较,可以做range比较。如果数值比较,最好使用decimal类型。
精度中,符号不算在内:
mysql> insert into t1 values(-98765430.21, -98765430.12);mysql> select * from t1;    
c1                              c2         -98765432.00        -98765430.12 

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 5 不喜欢 | 0
看完这篇文章有何感觉?已经有5人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程