***mysql中经度纬度字段用什么存储(关于mysql的float和decimal区别)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: float,decimal精确度比较   float,double容易产生误差,对精确度要求比较高时,建议使用decimal来存,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  

如何联系我:【万里虎】www.bravetiger.cn 【QQ】3396726884 (咨询问题100元起,帮助解决问题500元起) 【博客】http://www.cnblogs.com/kenshinobiy/
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
26天前
|
关系型数据库 MySQL
mysql增加修改删除字段
mysql增加修改删除字段
14 0
|
13天前
|
存储 关系型数据库 MySQL
MySQL引擎对决:深入解析MyISAM和InnoDB的区别
MySQL引擎对决:深入解析MyISAM和InnoDB的区别
28 0
|
21天前
|
存储 关系型数据库 MySQL
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
MySQL数据库性能大揭秘:表设计优化的高效策略(优化数据类型、增加冗余字段、拆分表以及使用非空约束)
|
1天前
|
存储 数据可视化 关系型数据库
MySQL字段的时间类型该如何选择?千万数据下性能提升10%~30%🚀
本文探讨MySQL中时间类型的选择,阐述datetime、timestamp、整形时间戳等类型特点以及它们在千万级数据量下的查询性能
MySQL字段的时间类型该如何选择?千万数据下性能提升10%~30%🚀
|
5天前
|
SQL 关系型数据库 MySQL
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
mysql 数据库查询 查询字段用逗号隔开 关联另一个表并显示
17 2
|
10天前
|
关系型数据库 MySQL
MySQL全局库表查询准确定位字段
information_schema.COLUMNS 详细信息查询
199 4
|
16天前
|
存储 关系型数据库 MySQL
深入理解MySQL中varchar和text的区别
在MySQL中,varchar和text都是用于存储文本数据的数据类型。varchar是可变长度字符串,存储时按实际长度分配空间,适合存储较短的、长度可变的字符串,如用户名。text类型用于存储大量文本,始终占用足够空间,适合文章内容。varchar在存储和查询时可能更快,可被索引,而text需特殊搜索技术。在数据库设计时,应根据存储需求和性能平衡选择。
51 0
|
17天前
|
SQL 存储 关系型数据库
【mysql】将逗号分割的字段内容转换为多行并group by
【mysql】将逗号分割的字段内容转换为多行并group by
|
28天前
|
SQL 关系型数据库 MySQL
Mysql数据库一个表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中
Mysql数据库一个表字段中存了id,并以逗号分隔,id对应的详细信息在另一个表中
10 0
|
4月前
|
存储 Java
百度搜索:蓝易云【Java语言之float、double内存存储方式】
由于使用IEEE 754标准进行存储,float和double类型可以表示非常大或非常小的浮点数,并且具有一定的精度。然而,由于浮点数的特性,它们在进行精确计算时可能会存在舍入误差。在编写Java程序时,需要注意使
59 0