decimal(numeric )、float 和 real 数据类型的区别

本文转至【http://blog.ahnw.gov.cn/user1/itblog/archives/2007/8599.html】

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

float 和 real                      不能精确存储数值


decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。

定义 decimal 的列、变量和参数的两种特性如下:

  • p   小数点左边和右边数字之和,不包括小数点。如 123.45,则 p=5,s=2。

    指定精度或对象能够控制的数字个数。

  • s

    指定可放到小数点右边的小数位数或数字个数。

    p 和 s 必须遵守以下规则:0 <= s <= p <= 38。

numeric 和 decimal 数据类型的默认最大精度值是 38。在 Transact-SQL 中,numeric 与 decimal 数据类型在功能上等效。

当数据值一定要按照指定精确存储时,可以用带有小数的 decimal 数据类型来存储数字。

float 和 real 数据

float 和 real 数据类型被称为近似的数据类型。在近似数字数据类型方面,float 和 real 数据的使用遵循 IEEE 754 标准。

近似数字数据类型并不存储为多数数字指定的精确值,它们只储存这些值的最近似值。在很多应用程序中,指定值与存储值之间的微小差异并不明显。但有时这些差异也值得引起注意。由于 float 和 real 数据类型的这种近似性,当要求精确的数字状态时,比如在财务应用程序中,在那些需要舍入的操作中,或在等值核对的操作中,就不使用这些数据类型。这时就要用 integer 、decimal 、money 或 smallmone 数据类型。

在 WHERE 子句搜索条件中(特别是 = 和 <> 运算符),应避免使用 float 或 real 列。最好限制使用 float 和 real 列做 > 或 < 的比较。

IEEE 754 规格提供了四种舍入模式:舍入到最接近的值、上舍入、下舍入和舍入到零。Microsoft® SQL Server™ 使用上舍入。所有的数值必须精确到确定的精度,但会产生细小的浮点值变化。因为浮点数字的二进制表示法可以采用很多合法舍入规则中的任意一条,因此我们不可能可靠地量化一个浮点值。

转换 decimal 和 numeric 数据

对于 decimal 和 numeric 数据类型,Microsoft® SQL Server™ 将精度和小数位数的每个特定组合看作是不同的数据类型。例如,decimal (5,5 ) 和 decimal (5,0 ) 被当作不同的数据类型。

在 Transact-SQL 语句中,带有小数点的常量自动转换为 numeric 数据值,且必然使用最小的精度和小数位数。例如,常量 12.345 被转换为 numeric 值,其精度为 5,小数位为 3。

从 decimal 或 numeric 向 float 或 real 转换会导致精度损失。从 int 、smallint 、tinyint 、float 、real 、money 或 smallmoney 向 decimal 或 numeric 转换会导致溢出。

默认情况下,在将数字转换为较低精度和小数位数的 decimal 或 numeric 值时,SQL Server 使用舍入法。然而,如果 SET ARITHABORT 选项为 ON,当发生溢出时,SQL Server 会出现错误。若仅损失精度和小数位数,则不会产生错误。

DSP TMS320FF28335程序从FLASH中拷贝到RAM中的两种方法及FLASH烧写方法 程序从FLASH中拷贝到RAM中执行的方法 DSP的程序下载执行方式有两种:一种是下载到RAM中在线执行,一种是下载到FLASH中执行。在RAM中执行时,具有执行速度快,可以无限次下载的特点,但是RAM的特点是掉电丢失数据。FLASH具有掉电不丢失数据的特点,但是同时存在执行速度慢和擦写次数有限的缺点。因此综合两者的特点,在DSP的开发过程中一般会结合使用两者。在前期程序调试过程,由于需要频繁的 阅读详情

相关推荐

双有源桥(DAB)进阶:EPS调制策略与Matlab/Simulink仿真实践

本文深入探讨了双有源桥(DAB)的扩展移相(EPS)调制策略及其在Matlab/Simulink中的仿真实践。通过分析EPS的两种黄金调制策略——回流功率消除和电流应力优化,结合实际工程案例,展示了如何提升DAB系统的效率和性能。文章还详细介绍了Simulink模型搭建要点和关键仿真结果,为工程师提供了实用的技术参考。

weixin_33734785的博客 483

存储金额:number类型和decimal类型有什么区别?

一、number类型和decimal类型有什么区别? decimal是number的子类型,功能是一样的,没有什么区别 oracle中的decimal在底层还是number 二、number类型,在mysql和oracle数据库中都有吗? 两个数据库中都有deciaml类型 三、两个数据库中都有number类型吗? number是oracle的数据类型,decimal是对应ANSI SQL标准的数据类型 所以在oracle数据库中,通常使用number存储金额 在mysql数据库中,通常使用decimal存

ClareXi的博客 7623

深入浅出ISP:用RKISP2.x Tuner工具理解AWB、AE、HDR等核心模块的实战调参

本文深入解析RKISP2.x Tuner工具在ISP图像处理中的实战应用,重点探讨AWB、AE、HDR等核心模块的调参技巧。通过环境搭建、调试工具使用和实际案例,帮助开发者掌握如何在不同光照条件下优化图像质量,实现精准的白平衡、曝光控制和动态范围处理。

weixin_26802933的博客 487

浮点型(float)和实型(real)_什么是浮点?

是指浮点数以及浮点计算。浮点型简单讲就是实数的意思。浮点数在计算机中用以近似表示任意某个实数。浮点计算是指浮点数参与浮点计算的运算,这种运算通常伴随着因为无法精确表示而进行的近似或舍入。例如,一个指数范围为±4的4位十进制浮点数可以用来表示43210,4.321或0.0004321,但是没有足够的精度来表示432.123和43212.3(必须近似为432.1和43210)。当然,实际使用的位数通常...

weixin_39731807的博客 2万+

从零构建2.4G无线通信系统:MSPM0G3507与NRF24L01的深度协同设计

本文详细介绍了基于MSPM0G3507微控制器与NRF24L01射频模块构建2.4G无线通信系统的深度协同设计方案。内容涵盖系统架构、SPI通信优化、功耗管理、抗干扰机制及中断/DMA高效利用,为工业物联网应用提供高可靠、低功耗的无线传输解决方案。

rice5的博客 820

【深大计算机网络】实验三 可靠传输机制 实验报告 附代码

【内附代码】【深大计算机网络】实验三 可靠传输机制 实验报告 附代码

m0_74268508的博客 1654

sql 下,float和numeric

搜了下两者的区别,答案其实很明显: numeric支持最长38位长度的数字,只有在你要的数字的长度超过38位时才推荐使用float 原因是,float在保存和提取,以及数学计算等方面,会产生于期待记过不一致的情况。 为什么呢? 因为float和real,保存的是一种近似值,而非准确值。比如,向float列中保存一个数,3.8,存完之后有可能变成3.7999999或者3.80000124 ...

weixin_30588675的博客 536

全志平台camera驱动开发(3)MIPI接口camera驱动开发

详细沟通: 请加video_D 目前开发过的allwinner平台: V5/V3/V3S/V40/T3/T7/A64等 开发过的mipi sensor: sony:imx317、imx477、imx274、imx258、imx286、imx307、imx385等 ov:ov2718、ov12895、ov2710等 ar: ar0238等 国产:gc1024、gc1034...

jzwjzw19900922的博客 9028

神通数据库中 NUMERIC、NUMBER 与 FLOAT 的区别全知晓

在神通数据库的实际应用中,我们需要根据具体的业务需求来谨慎选择 NUMERIC、NUMBER 和 FLOAT 这三种数据类型。而对于科学计算、工程计算等对数值范围要求高但对精度要求相对宽松的场景,FLOAT 类型则能够发挥其优势。在神通数据库的应用开发过程中,数据类型的恰当选用对数据的精准存储、高效处理以及系统整体性能的保障起着决定性作用。其中,NUMERIC、NUMBER 和 FLOAT 这三种数据类型较为常用,然而它们之间却存在着显著的差异,值得我们深入探究。

『愚』的博客 2348

IP-Guard安全网关实例

企业相关情况: 1.OA系统,主要为日常工作使用,该系统IP为192.168.1.2,端口为8080; 2.文件共享服务器,用于存放日常工作资料和文档,该文件共享服务器的IP为192.168.1.1,其中\\192.168.1.1\private 目录中的存放着公司重要文档,不能随意外传; 3.安全网关已采用串联的方式联入网络,IP为192.168.2.6,所有机器访问OA系统和文件共享服务...

IP-Guard专栏 706

Isaac Sim/Lab & ROS2 入门教程 —— 宇树人形机器人 H1 强化学习策略部署

本文介绍了如何通过ROS2和IsaacSim运行H1人形机器人的强化学习运动策略。主要内容包括:1)设置机器人关节配置和初始位置;2)添加IMU传感器;3)配置ROS2节点以发布观测数据和接收动作指令;4)创建模拟环境并发布ROS时钟;5)最终运行ROS2策略实现对机器人的键盘控制。文中详细说明了关节参数设置、传感器配置、ROS2节点创建等关键步骤,并提供了注意事项和验证方法。完成配置后,用户可通过键盘指令控制机器人在平坦地形上的运动。

2506_90492529的博客 2170

SqlServer中decimal(numeric )、float 和 real 数据类型的区别[转] 备忘

SqlServer中decimal(numeric )、float 和 real 数据类型的区别[转] decimal(numeric )             同义,用于精确存储数值 float 和 real                      不能精确存储数值 decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类

neweastsun的专栏 1454

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

SqlServer中decimal(numeric )、float 和 real 数据类型的区别

decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。 定义 decimal 的列、变量和参数的两种特性如下: ·          p   小数点左边和右边数字之和,不包括小数点。如 123.45,则 p=5,s=2。 指定精度或对象能够控制的数字个数。 ·          s...

David 1313

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

mysql numeric float_decimal(numeric )、float 和 real 数据类型的区别

decimal(numeric ) 同义,用于精确存储数值float 和 real 不能精确存储数值decimal数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。定义decimal的列、变量和参数的两种特性如下:p 小数点左边和右边数字...

weixin_39916379的博客 407

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

Oracle中Number decimal(numeric )、float 和 real 数据类型的区别

在Oracle中Number类型可以用来存储0,正负定点或者浮点数,可表示的数据范围在 1.0 * 10(-130) —— 9.9...9 * 10(125) {38个9后边带88个0}的数字,当Oracle中的数学表达式的值>=1.0*10(126)时,Oracle就会报错。Number的数据声明如下:表示 作用 说明Numbe...

weixin_33692284的博客 1103

Sql Server中decimal(numeric )、float 和 real 数据类型的区别(转)

原文:http://blog.youkuaiyun.com/zwxrain/archive/2009/03/20/4006431.aspx decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。 定义 decimal 的列、变量和参数的两种特性如下: · p 小数点左...

weixin_30892037的博客 256

decimal(numeric )、float 和 real 数据类型的区别[转]

转自:http://hi.baidu.com/ha_yuki/blog/item/449541f53b884427bd310952.htmldecimal(numeric ) 同义,用于精确存储数值 float 和 real 不能精确存储数值 decimal数据类型最多可存储 38 个数字,...

weixin_34417814的博客 517

SqlServer中decimal(numeric )、float 和 real 数据类型的区别[转]

decimal(numeric )             同义,用于精确存储数值 float 和 real                      不能精确存储数值 decimal 数据类型最多可存储 38 个数字,所有数字都能够放到小数点的右边。decimal 数据类型存储了一个准确(精确)的数字表达法;不存储值的近似值。 定义 decimal 的列、变量和参数的两种特性如

编程岁月 1017
上一篇: ubuntu 错误提示音关闭方法
下一篇: 在windows中建立桥接模式
Techie
博客等级 码龄24年 0粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值