文档章节

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

一真的鱼
 一真的鱼
发布于 2017/03/28 23:38
字数 580
阅读 66
收藏 0

三者的区别介绍

 

float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)

double:双精度实型,含字节数为8,64bit数值范围-1.7E308~1.7E308(15个有效位)

decimal:数字型,128bit,不存在精度损失,常用于银行帐目计算。(28个有效位)

 

按存储的范围进行排序

 

float(real)

double

decimal(numeric)

 

decimal的详细介绍

 

decimal(a,b)
 

参数说明

a指定指定小数点左边和右边可以存储的十进制数字的最大个数,最大精度38。
b指定小数点右边可以存储的十进制数字的最大个数。小数位数必须是从 0 到 a之间的值。默认小数位数是 0。

 

备注

DECIMAL数据类型用于要求非常高的精确度的计算中,这些类型允许指定数值的精确度和计数方法作为选择参数。精确度在这里是指为这个值保存的有效数字的总个数,而计数方法表示小数点后数字的个数。例如,语句DECIMAL (5,2)规定了存储的值将不会超过5位数字,开且小数点后面有2位数字。

 

实例

 

 

SQL 代码   复制


float f = 345.98756f;--结果显示为345.9876,只显示7个有效位,对最后一位数四舍五入。

double d=345.975423578631442d;--结果显示为345.975423578631,只显示15个有效位,对最后一位四舍五入。

--注:float和double的相乘操作,数字溢出不会报错,会有精度的损失。

decimal dd=345.545454879.....--可以支持28位,对最后一位四舍五入。

--:当对decimal类型进行操作时,数值会因溢出而报错。

 

总结

数值存储范围越小的精度越高,存储数值范围越大,精度就越不准确,如果存储正常金额的情况下,使用money,好处在于可以存储不指定的小数点位数的数值,比较真实。如果对于既要求精度,又固定小数点位数的数值存储,采用decimal(numeric),优点在于可以自定义小数点位数,精度高。如特殊情况,如数值范围巨大只能用float(real)类型了,此类型一般不提倡使用。

本文转载自:http://www.studyofnet.com/news/214.html

一真的鱼
粉丝 2
博文 88
码字总数 21290
作品 0
武汉
私信 提问
SQL中decimal、float、double的区别

本文导读:decimal(numeric)、double、float(real) 都是SQL中的浮点类型的数据类型。FLOAT数值类型用于表示单精度浮点数值,DOUBLE数值类型用于表示双精度浮点数值,而decimal用法更灵活...

iBazinga
2016/08/13
222
0
Mysql中,int(10)和int(11)的区别

int(M) M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关 首先说一下mysql的数值类型,MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据...

qwergkp
2018/11/07
21
0
Mysql中,int(10)和int(11)的区别

int(M) M指示最大显示宽度。最大有效显示宽度是255。显示宽度与存储大小或类型包含的值的范围无关 首先说一下MySQL的 数值类型,MySQL支持所有标准SQL数值数据类型。这些类型包括严格数值数据...

bengozhong
2016/12/09
1K
0
mysql decimal类型

MySQL中存在float,double等非精准数据类型,也有decimal这种精准数据类型。 三者的区别介绍 float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位)(E38->*10的38次幂)...

为了美好的明天
2017/10/31
24
0
MySql中字段类型与长度和取值范围解析

MySQL中的数据类型大体分为三大类,数值类型,时间日期类型以及字符串类型。下面将对这三种类型进行详细的介绍。 一、数值类型   MySQL 支持所有标准SQL 中的数值类型,其中包括严格数值类...

张锦飞
2018/07/02
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

golang-字符串-地址分析

demo package mainimport "fmt"func main() {str := "map.baidu.com"fmt.Println(&str, str)str = str[0:5]fmt.Println(&str, str)str = "abc"fmt.Println(&s......

李琼涛
今天
4
0
Spring Boot WebFlux 增删改查完整实战 demo

03:WebFlux Web CRUD 实践 前言 上一篇基于功能性端点去创建一个简单服务,实现了 Hello 。这一篇用 Spring Boot WebFlux 的注解控制层技术创建一个 CRUD WebFlux 应用,让开发更方便。这里...

泥瓦匠BYSocket
今天
6
0
从0开始学FreeRTOS-(列表与列表项)-3

FreeRTOS列表&列表项的源码解读 第一次看列表与列表项的时候,感觉很像是链表,虽然我自己的链表也不太会,但是就是感觉很像。 在FreeRTOS中,列表与列表项使用得非常多,是FreeRTOS的一个数...

杰杰1号
今天
8
0
Java反射

Java 反射 反射是框架设计的灵魂(使用的前提条件:必须先得到代表的字节码的 Class,Class 类 用于表示.class 文件(字节码)) 一、反射的概述 定义:JAVA 反射机制是在运行状态中,对于任...

zzz1122334
今天
5
0
聊聊nacos的LocalConfigInfoProcessor

序 本文主要研究一下nacos的LocalConfigInfoProcessor LocalConfigInfoProcessor nacos-1.1.3/client/src/main/java/com/alibaba/nacos/client/config/impl/LocalConfigInfoProcessor.java p......

go4it
昨天
9
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部