iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >SQL中的real、float、decimal、numeric数据类型区别
  • 297
分享到

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

SQL中的realfloatdecimalnumeric数据类型区别 2021-05-09 08:05:15 297人浏览 绘本
摘要

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

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

概述:

浮点数据类型包括real型、float型、decimal型和numeric型。浮点数据类型用于存储十进制小数。

SQL Server 中浮点数值的数据采用上舍入(Round up)的方式进行存储,所谓上舍入也就是,要舍入的小数部分不论其大小,

只要是一个非零的数,就要在该数字的最低有效位上加1,并进行必要的进位。

由于浮点数据为近似值,所以并非数据类型范围内的所有数据都能精确地表示。

 

1、区别说明

decimal(numeric):同义,用于精确存储数值

float 和 real:不能精确存储数值

 

2、real数据类型

real型数据的存储大小为4个字节,可精确到小数点后第7位数字。

这种数据类型的数据存储范围为从-3.40E+38~-1.18E-38,0和1.18E-38~3.40E+38。

在MSsql中real的同义词是float,用法几乎一样。

 

3、float数据类型

float型的数据存储大小为8个字节,可精确到小数点后第15位数字。

这种数据类型的数据存储范围为从-1.79E+308~-2.23E-308,0和2.23E+308~1.79E+308。

FLOAT(size,d) 带有浮动小数点的小数字。在括号中规定最大位数。在 d 参数中规定小数点右侧的最大位数。

float型的数据可写成float[(n)]的形式。其中n是1~15之间的整数值,指定float型数据的精度。当n为1~7时,实际上用户定义了一个real型的数据,系统用4个字节存储;

当n为8~15时,系统认为它是个float型的数据,用8个字节存储它。这样既增强了数据定义的灵活性,又节省了空间。

 

4、decimal(numeric)数据类型

decimal数据类型和numeric数据类型的功能完全一样,它们都可以提供小数所需要的实际存储空间,

但也有一定的限制,用户可以用2~17个字节来存储数据,取值范围是-1038+1~1038-1。

DECIMAL(size,d) 作为字符串存储的 DOUBLE 类型,允许固定的小数点。在括号中规定最大位数。

其中size表示可供存储的值的总位数(不包括小数点),默认值为18;d表示小数点后的位数,默认值为0;

参数之间的关系是0≤d≤size。例如:decimal(15,5)表示共有15位数,其中整数10位,小数5位。

若一个数是上舍入数,其绝对值不会减少。如:对3.14159265358979 分别进行2 位和12位舍入,结果为3.15 和3.141592653590。

在精度上还是有很大的差别的,所以在创建数据库时一定要对字段的数据类型进行精准的分析,确保在插入数据值的最大精度上不要出现差错这样才不会使数据在运算的过程中出现大的偏差。

例如在月底或者年底汇总报表时查询出的数据是小数,在运算完以后的数据也是小数,可是在增加到汇总表里的时候变成整数了,

这种情况往往就是数据库中表在建立的时候没有有效的设置浮点型数据的小数点后面精度的问题使其数据发生了上舍入现象。

说明:

舍入是一种修约规则。在日常的生活中,我们为了精简格式,记忆方便,常常用四舍五入的方法来去掉零头或凑个整数来解决此问题。

四舍五入是一种非常灵活的方法。因此不管是在日常生活中还是在数学计算中四舍五入方法应用的都比较广泛。

除了四舍五入的舍入方法外还有其他不同的舍入规则、在数学中也有其独特的定义。

 

创建的表:

 

实例1:

这边我创建了个表用的real,float,decimal,我创建的字段类型是DECIMAL(3,1),长度是3,小数为1

查询出来的数据,遵循四舍五入,这里我插入了88.04,所以查询出来是88.0

 

实例2:

这边我对decimal的字段插入88.05,查询出来的数据是88.1

 

实例3:

这边测试一下超过长度会怎样,小数位在表中是保留1位,所以无论你输入多少位,都是保留1位,也不会报错,但是超出长度就会报错

将 varchar 转换为数据类型 numeric 时出现算术溢出错误。

 

按照上面实例插入了两条数据,可得知结果:

 

您可能感兴趣的文档:

--结束END--

本文标题: SQL中的real、float、decimal、numeric数据类型区别

本文链接: https://www.lsjlt.com/news/3628.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • SQL中的real、float、decimal、numeric数据类型区别
    概述: 浮点数据类型包括real型、float型、decimal型和numeric型。浮点数据类型用于存储十进制小数。 在SQL Server 中浮点数值的数据采用上舍入(Round up)的方式进行存储,所谓上舍入也就是,要舍...
    99+
    2021-05-09
    SQL中的real float decimal numeric数据类型区别
  • MySQL中float double和decimal类型有何区别
    下文主要给大家带来MySQL中float double和decimal类型有何区别,希望这些内容能够带给大家实际用处,这也是我编辑MySQL中float double和decimal类型有何区别这篇文章的主...
    99+
    2022-10-18
  • Float与Real数据类型的陷阱
    SQL Prompt根据数据库的对象名称、语法和代码片段自动进行检索,为用户提供合适的代码选择。自动脚本设置使代码简单易读--当开发者不大熟悉脚本时尤其有用。SQL Prompt安装即可使用,能大幅提高编码...
    99+
    2022-10-18
  • 使用Float或Real数据类型的危险
    SQL Prompt根据数据库的对象名称、语法和代码片段自动进行检索,为用户提供合适的代码选择。自动脚本设置使代码简单易读--当开发者不大熟悉脚本时尤其有用。SQL Prompt安装即可使用,能大幅提高编码效率。本文介绍了使用Float或R...
    99+
    2017-02-05
    使用Float或Real数据类型的危险
  • MySQL中float、double、decimal三个浮点类型有什么区别
    这篇文章给大家分享的是有关MySQL中float、double、decimal三个浮点类型有什么区别的内容。小编觉得挺实用的,因此分享给大家做个参考。一起跟随小编过来看看吧。下表中规划了每个浮点类型的存储大...
    99+
    2022-10-18
  • 浅谈MySQL中float、double、decimal三个浮点类型的区别与总结
    下表中规划了每个浮点类型的存储大小和范围: 类型 大小 范围(有符号) 范围(无符号) 用途 ...
    99+
    2022-05-11
    MySQL float double decimal
  • js基本数据类型和引用数据类型的区别
    本篇内容主要讲解“js基本数据类型和引用数据类型的区别”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“js基本数据类型和引用数据类型的区别”吧!基本数据类型和引用...
    99+
    2022-10-19
  • python中可变数据类型和不可变数据类型有什么区别
    这篇文章将为大家详细讲解有关python中可变数据类型和不可变数据类型有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1、区别说明可变数据类型是当该数据类型对应变量的值发生变化时,对...
    99+
    2023-06-15
  • SQL Server中的数据类型详解
    目录哪些对象需要数据类型一、 整数数据类型1、bit2、tinyint3、smallint4、int (integer)5、bigint二、 浮点数据类型1、real: 近似数值型2...
    99+
    2022-11-13
  • MySQL 中的 BLOB 和 TEXT 数据类型有什么区别?
    BLOB代表Binary Large Objects,顾名思义,它可以用于存储二进制数据,而TEXT用于存储大量字符串。 BLOB可以用来存储二进制数据,这意味着我们还可以存储图片、视频、声音和程序。 例如,下面的图像可以存储为 BLOB,...
    99+
    2023-10-22
  • GO将mysql 中 decimal 数据类型映射到 protobuf的操作方法
    目录protobuf中 float与double1、如何在rpc中优雅取出dcemial类型2、在rpc中 proto我们定义如下2.1、proto - double2.2、proto - float3、在go-zero...
    99+
    2022-09-26
  • GO将mysql 中 decimal 数据类型映射到 protobuf的操作方法
    目录protobuf中 float与double1、如何在rpc中优雅取出dcemial类型2、在rpc中 proto我们定义如下2.1、proto - double2.2、prot...
    99+
    2022-11-11
  • MySQL与Oracle的数据类型有什么区别
    这篇文章主要为大家展示了“MySQL与Oracle的数据类型有什么区别”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL与Oracle的数据类型有什么区别...
    99+
    2022-10-18
  • JavaScript 基本数据类型和引用类型的区别是怎么样的
    这篇文章将为大家详细讲解有关JavaScript 基本数据类型和引用类型的区别是怎么样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。js基本数据类型:js...
    99+
    2022-10-19
  • SQL Server中的数据类型有哪些
    这篇文章主要介绍了SQL Server中的数据类型有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇SQL Server中的数据类型有哪些文章都会有所收获,下面我们一起来看看吧。T-SQL...
    99+
    2023-06-30
  • SQL Server中的XML数据类型详解
    目录一、创建测试数据,指定字段数据类型为XML1、创建表2、插入测试数据3、插入XML文件数据4、创建索引二、查询XML数据1、query(XPath条件):返回xml 类型的节点内...
    99+
    2022-11-13
  • python数据类型bytes 和 bytearray的使用与区别
    目录bytes 和 bytearray理解bytes 和 bytearraypython中值的表示进制转换bytes类型bytes类型转化bytes转数值bytes的方法bytear...
    99+
    2022-11-13
  • Python 面试高频问题:可变数据类型和不可变数据类型的区别
    Python可变数据类型和不可变数据类型是一个基础而且重要的考点。简单地说:这里的可变和不可变是指当变量改变的时候,数据的地址是否会改变!可变数据类型:如果改变了变量的值,相当于是新建了一个对象(即地址会被改变)。可变数据类型:变量的值发生...
    99+
    2023-05-19
    Python 可变数据类型 不可变数据类型
  • 数据类型在ASP和Django中的区别:如何正确打包数据?
    在ASP和Django这两个流行的Web框架中,数据类型是非常重要的一部分,因为它可以直接影响到我们的应用程序的性能和可靠性。本文将介绍ASP和Django中数据类型的区别,并讨论如何正确地打包数据。 ASP中的数据类型 ASP使用一些基...
    99+
    2023-07-11
    django 数据类型 打包
  • 深入讲解数据库中Decimal类型的使用以及实现方法
    目录1 背景2 Decimal类型的使用2.1 描述Decimal2.2 建表时定义Decimal2.3 写入decimal数据2.4 取出deimcal进行计算3 Decimal类...
    99+
    2022-11-13
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作