decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。
定义 decimal 的列、变量和参数的两种特性如下:
· p 小数点左边和右边数字之和,不包括小数点。如 123.45,则 p=5,s=2。
指定精度或对象能够控制的数字个数。
· s
指定可放到小数点右边的小数位数或数字个数。
p 和 s 必须遵守以下规则:0 <= s <= p <= 38。
numericdecimal 数据类型的默认最大精度值是 38。在 Transact-SQL 中,numeric decimal 数据类型在功能上等效。
当数据值一定要按照指定精确存储时,可以用带有小数的 decimal 数据类型来存储数字。
float real 数据
float real 数据类型被称为近似的数据类型。在近似数字数据类型方面,floatreal 数据的使用遵循 IEEE 754 标准。
近似数字数据类型并不存储为多数数字指定的精确值,它们只储存这些值的最近似值。在很多应用程序中,指定值与存储值之间的微小差异并不明显。但有时这些差异也值得引起注意。由于 floatreal 数据类型的这种近似性,当要求精确的数字状态时,比如在财务应用程序中,在那些需要舍入的操作中,或在等值核对的操作中,就不使用这些数据类型。这时就要用integerdecimalmoneysmallmone数据类型。
在 WHERE 子句搜索条件中(特别是 = 和 <> 运算符),应避免使用 floatreal 列。最好限制使用 floatreal 列做> 或 < 的比较。
IEEE 754 规格提供了四种舍入模式:舍入到最接近的值、上舍入、下舍入和舍入到零。Microsoft® SQL Server™ 使用上舍入。所有的数值必须精确到确定的精度,但会产生细小的浮点值变化。因为浮点数字的二进制表示法可以采用很多合法舍入规则中的任意一条,因此我们不可能可靠地量化一个浮点值。
转换 decimal numeric 数据
对于 decimal numeric 数据类型,Microsoft® SQL Server™ 将精度和小数位数的每个特定组合看作是不同的数据类型。例如,decimal(5,5) 和 decimal(5,0) 被当作不同的数据类型。(因此在编存储过程当中使用的变量采用Real 或 Float,而不采用decimal类型)
在 Transact-SQL 语句中,带有小数点的常量自动转换为 numeric 数据值,且必然使用最小的精度和小数位数。例如,常量 12.345 被转换为 numeric 值,其精度为 5,小数位为 3。
decimal numeric floatreal 转换会导致精度损失。从 intsmallinttinyintfloatrealmoney smallmoneydecimalnumeric 转换会导致溢出。
默认情况下,在将数字转换为较低精度和小数位数的 decimalnumeric 值时,SQL Server 使用舍入法。然而,如果 SET ARITHABORT 选项为 ON,当发生溢出时,SQL Server 会出现错误。若仅损失精度和小数位数,则不会产生错误。
 
 
Float 的科学计数法与值的问题,问题的根源在于 float 类型本身是一种不精确的数据表示方法, 也就是说, 你放一个数据进去, 拿出来的时候可能会存在一点点点误差, 而这点点点误差在做数据比较的时候就会导致数据不一致.

decimal与 float的区别的更多相关文章

  1. C#中decimal ,double,float的区别

    浮点型 Name CTS Type Description Significant Figures Range (approximate) float System.Single 32-bit sin ...

  2. [转载] c#中decimal ,double,float的区别

    一直很奇怪C#的预定义数据类型中为什么加了一个decimal,有float和double不就够了吗?今天来挖一挖. 浮点型 Name CTS Type De script ion Significan ...

  3. decimal和float的区别

    场景 今天在开发的时候,在mongodb中有个字段保存的数据结构是decimal,然后需要对这个字段的值进行范围的查询.结果却怎么查询值范围都是空. 解决 如图中看到的,利用Navicat,可以明显的 ...

  4. decimal,float和double的区别

    http://www.cnblogs.com/yellowapplemylove/archive/2011/08/23/2150316.html 一直很奇怪C#的预定义数据类型中为什么加了一个deci ...

  5. decimal与float和double的区别

    一直很奇怪C#的预定义数据类型中为什么加了一个decimal,有float和double不就够了吗?今天来挖一挖. 浮点型 Name CTS Type De script ion Significan ...

  6. inline-block和float的区别,什么时候使用

    文章转载于新浪博客http://blog.sina.com.cn/s/blog_5f39af320101qckt.html 只用于学习交流 什么时候使用inline-block,什么时候使用float ...

  7. Sql的decimal、float、double类型的区别

    三者的区别介绍 float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E ...

  8. SQL中的real、float、decimal、numeric数据类型区别

    概述: 浮点数据类型包括real型.float型.decimal型和numeric型.浮点数据类型用于存储十进制小数. 在SQL Server 中浮点数值的数据采用上舍入(Round up)的方式进行 ...

  9. 1不等于1?numeric、decimal、float 和 real 数据类型的区别

    大家有没有在SQL中遇见1不等于1(1<>1)的情形!?下面会有一个例子演示这个情形. 先简单介绍一下标题中的四种数值数据类型. 在T-SQL中,numeric和decimal是精确数值数 ...

随机推荐

  1. a标签里面包含img标签,出现a标签的高度高于img标签好几个px

    问题:a标签里面包含img标签,出现a标签的高度高于img标签好几个px 解决: a元素下有一个匿名文本,这个文本外有一个匿名行级盒子,它有的默认vertical-align是baseline的,而且 ...

  2. VMware Workstation 虚拟机纯 Linux 终端如何安装 VMware Tools ?

    VMware Workstation 虚拟机纯 Linux 终端如何安装 VMware Tools ? 1.首先在虚拟机设置里面设置一个共享文件夹 2.在虚拟机菜单栏中选择 VMware Tools ...

  3. go语言之并发编程同步一

    前面介绍了采用go语法的并行操作以及channel.既然是并行操作,那么就涉及到数据原子性以及同步的问题.所以在Go里面也需要采用同步的机制. 互斥锁: 由标准库代码包sync中的Mutex结构体类型 ...

  4. 画图-drawpoint and drawpath

    版权声明:本文因海牛宝宝童鞋才疏学浅,可能晦涩难懂,但也是呕心沥血之作,麻烦转载的时候留个申明. https://blog.csdn.net/u012321815/article/details/26 ...

  5. net mvc 利用NPOI导入导出excel

    1.导出Excel : 首先引用NPOI包(Action一定要用FileResult) /// <summary> /// 批量导出需要导出的列表 /// </summary> ...

  6. 03 Spring框架 bean的属性以及bean前处理和bean后处理

    整理了一下之前学习spring框架时候的一点笔记.如有错误欢迎指正,不喜勿喷. 上一节我们给出了三个小demo,具体的流程是这样的: 1.首先在aplicationContext.xml中添加< ...

  7. asp.net 下载图片

    public class DownLoad : IHttpHandler { public void ProcessRequest(HttpContext context) { context.Res ...

  8. 每天一个Linux命令(63)scp命令

        scp(secure copy)用于进行远程文件拷贝.     (1)用法:     用法:  scp [参数] [源文件] [目标文件]     (2)功能:     功能:  scp在主机 ...

  9. centos中安装php7

    centos7下安装php7 php7 centos7 安装PHP7 首先安装一些必须的依赖,这里就不阐述了,后面文章再细说 yum install -y \ gcc-c++ autoconf \ l ...

  10. jq中ajax的dataType:"json"是指什么?

    dataType String 预期服务器返回的数据类型.如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断,比如XML MIME类型就被识别为XML.在1.4中,JSON就 ...