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的float和decimal区别)的更多相关文章

  1. 【整理】mysql中information_schema.tables字段说明

    [整理]mysql中information_schema.tables字段说明 2016-05-04 16:47:50|  分类: 默认分类|举报|字号 订阅     下载LOFTER我的照片书  | ...

  2. mysql中的null字段值的处理及大小写问题

    在MySQL中,NULL字段的处理,需要注意,当在处理查询条件中有NULL,很有可能你得到的值不是想要的,因为,在MySQL中,判断NULL值相等(=)或者不等(!=)都会返回false.主要出现在常 ...

  3. Mysql中自增字段(AUTO_INCREMENT)的一些常识

    Mysql中自增字段(AUTO_INCREMENT)的一些常识: http://chengxuyuan.naxieshir.com/fenlei/2/p/151.html

  4. MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号;一般,表名与字段名都使用反引号。

    MySQL 中的反引号(`):是为了区分 MySql 关键字与普通字符而引入的符号:一般,表名与字段名都使用反引号.

  5. mysql中查询一个字段属于哪一个数据库中的哪一个表的方式

    mysql中查询一个字段具体是属于哪一个数据库的那一张表:用这条语句就能查询出来,其中 table_schema 是所在库, table_name 是所在表 --mysql中查询某一个字段名属于哪一个 ...

  6. Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?

    Thinkphp中查询复杂sql查询表达式,如何表达MYSQL中的某字段不为空is not null?先上两种实现方式的实例:$querys["house_type_image"] ...

  7. mysql中根据一个字段相同记录写递增序号,如序号结果,如何实现?

      mysql中根据一个字段相同记录写递增序号,如序号结果,如何实现? mysql中实现方式如下: select merchantId, NameCn, send_date, deliver_name ...

  8. MySQL中的存储过程、游标和存储函数

    MySQL中的存储过程首先来看两个问题: 1.什么是存储过程? 存储过程(Stored Procedure)是在数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存 ...

  9. mysql中information_schema.views字段说明

    1.查看视图并不是查询视图数据,而是查看数据库中已经存在的视图的定义,查看视图必须要有SHOW VIEW权限,MySQL的数据库下的user表中存储这这个数据.查看视图的方法有:DESCRIBE,SH ...

随机推荐

  1. linux进程调度之 FIFO 和 RR 调度策略

    转载 http://blog.chinaunix.net/uid-24774106-id-3379478.html    linux进程调度之 FIFO 和 RR 调度策略 2012-10-19 18 ...

  2. Starting zabbix_agentd: No such file or directory

    问题描述 [root@localhost admin]# service zabbix_agentd restart Shutting down zabbix_agentd: [FAILED] Sta ...

  3. Android打电话&发短信

    public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView ...

  4. C++构造函数详解及显式调用构造函数

    来源:http://www.cnblogs.com/xkfz007/archive/2012/05/11/2496447.html       c++类的构造函数详解                  ...

  5. 10GE---超长距离的万兆以太网

    万兆以太网 锁定 本词条由“科普中国”百科科学词条编写与应用工作项目 审核 . 以太网标准是一个古老而又充满活力的标准.自从1982年以太网协议被IEEE采纳成为标准以后,已经历了20年的风风雨雨.在 ...

  6. MongoDB.WebIDE:升级版的Mongodb管理工具

    很早以前收藏了一片文章:<强大的MongoDB数据库管理工具>.最近刚好要做一些MongoDB方面的工作,于是翻出来温习了一下,用起来也确实挺方便.不过在使用过程中出现了一些个问题,加上更 ...

  7. HNU 12845 Ballot Analyzing Device

    题目链接:http://acm.hnu.cn/online/?action=problem&type=show&id=12845&courseid=270 解题报告:有m个认给 ...

  8. 第15章 使用Postfix与Dovecot收发电子邮件

    章节概述: 本章节从电子邮局系统的组成角色开始讲起,了解MUA.MTA与MDA的作用,熟悉熟悉SMTP.POP3与IMAP4邮局协议. 学习postfix与dovecot服务程序的使用方法并逐条讲解配 ...

  9. Redis快速入门

    Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发工作由VMware主 ...

  10. meanshift和camshift

    参考:http://www.cnblogs.com/tornadomeet/archive/2012/03/15/2398769.html 照着这位大神的代码运行了一下,发现meanshift的跟踪效 ...