本文主要向大家介绍了MySQL数据库之***mysql中经度纬度字段用什么存储(关于mysql的float和decimal区别) ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。
float,decimal精确度比较
float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,decimal在mysql内存是以字符串存储的,
用于定义货币要求精确度高的数据。在数据迁移中,float(M,D)是非标准定义,最好不要这样使用。M为精度,D为标度。
mysql>createtablet1(c1float(10,2),c2decimal(10,2),c3float);//10不包括小数点
mysql>insertintot1values(1234567.23,1234567.23,1234567.23);mysql>select*fromt1;
数据显示与所用的客户端工具有关
1.在ToadforMySQL中的显示为
c1c2c3
12345671234567.231234570
2.在MySQLQueryBrowser中的显示为
c1c2c3
1234567.251234567.231.23457e+006
3.程序中取出数据
12345671234567.231234570
mysql>insertintot1values(9876543.21,9876543.12,9876543.21);
1.在ToadforMySQL中的显示为
c1c2c3
98765439876543.129876540
2.在MySQLQueryBrowser中的显示为
c1c2c3
9876543.009876543.129.87654e+006
3.程序中取出数据
98765439876543.129876540
mysql>insertintot1values(1.21,1.12,1.21);
1.在ToadforMySQL中的显示为
c1c2c3
1.211.121.21
2.在MySQLQueryBrowser中的显示为
c1c2c3
1.211.121.21
3.程序中取出数据
1.211.121.21
mysql>insertintot1values(1.2,1.2,1.2);
1.在ToadforMySQL中的显示为
c1c2c3
1.21.201.2
2.在MySQLQueryBrowser中的显示为
c1c2c3
1.201.201.2
3.程序中取出数据
1.21.201.2
mysql>insertintot1values(9876543.216,9876543.126,9876543.216);
1.在ToadforMySQL中的显示为
c1c2c3
98765439876543.139876540
2.在MySQLQueryBrowser中的显示为
c1c2c3
9876543.009876543.139.87654e+006
3.程序中取出数据
98765439876543.139876540
mysql>insertintot1values(1.216,1.126,1.216);
1.在ToadforMySQL中的显示为
c1c2c3
1.221.131.216
2.在MySQLQueryBrowser中的显示为
c1c2c3
1.221.131.216
3.程序中取出数据
1.221.131.216
不定义fload,double的精度和标度时,存储按给出的数值存储,这于OS和当前的硬件有关。
decimal默认为decimal(10,0)
因为误差问题,在程序中,少用浮点数做=比较,可以做range比较。如果数值比较,最好使用decimal类型。
精度中,符号不算在内:
mysql>insertintot1values(-98765430.21,-98765430.12);mysql>select*fromt1;
c1c2-98765432.00-98765430.12
本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!
mysql中 经纬度用什么类型存储_MySQL数据库之***mysql中经度纬度字段用什么存储(关于mysql的float和decimal区别)...