decimal(10,2) 是什么意思 在一个表中

decimal(10,2) 是什么意思 在一个表中,第1张

decimal(10,2)中的“2”表示小数部分的位数,如果插入的值未指定小数部分或者小数部分不足两位则会自动补到2位小数,若插入的值小数部分超过了2为则会发生截断,截取前2位小数。

“10”指的是整数部分加小数部分的总长度,也即插入的数字整数部分不能超过“10-2”位,否则不能成功插入,会报超出范围的错误。

下面是decimal对应表,可以用来进行对照:

扩展资料:

Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部分以及小数部分的位数。使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal(4,2)即可。

参考资料:

Decimal_百度百科

p (有效位数) 可储存的最大十进位数总数,小数点左右两侧都包括在内。

s (小数位数) 小数点右侧所能储存的最大十进位数。

所以能取得最大数是38位都在小数点左边即10的38次方-1,同理最小-10的38次方+1

可以为负值。

Decimal为SQL Server、MySql等数据库的一种数据类型,不属于浮点数类型,可以在定义时划定整数部dao份以及小数部分的位数。

使用精确小数类型不仅能够保证数据计算更为精确,还可以节省储存空间,例如百分比使用decimal即可,存储数据范围是:-^8~^8- 的固定精度和小数位的数字,一个decimal类型的数据占用了~7个字节

扩展资料:

一单位的统计服务器投入使用后,运行速度较慢,经排查原因,发现SQLServer中的内存选项(Memory)仅为安装缺省值16MB(而服务器有128MB的物理内存)在将;

内存值调整为100MB时却误将其改成了1000MB,使得SQL Server服务不能启动,统计数据库打不开,也就不能再次进入SQL Enterprise Manager修改内存设置了。

既然SQL Server可用内存设置值远远大于物理内存,造成SQLServer服务不能启动,何不扩充虚拟内存呢经设法将机器虚拟内存扩充至1000MB并重新启动,SQL Server数据库成功启动,问题迎刃而解。

第一次看到decimal(m,d)一头雾水,知道肯定是个范围,但是不知道范围的规则,看了一些文章发现说的都不是很明白,于是去官网看了下。

大概意思是这样的:

decimal(m,d)

m是数字的最大位数,他的范围是从1-65;

d是小数点后的位数,他的范围是0-30,并且不能大于m。

如果m被省略了,那么m的值默认为10,

如果d被省略了,那么d的值默认为0

举例表示:

1、decimal(5,2) 所指代的范围是-99999~99999 数字的最大位数是5位,小数点右侧是2位,即有两位小数。

2、decimal(7,6)所指代的范围是-9999999~9999999 数字的最大位数是7位,小数点右侧是6位,即有六位小数。

字的位数和所占字节数,有以下对应表:

小数点左侧位数

数据结构所占的字节数

1–2 1

3–4 2

5–6 3

7–9 4

举例表示:

decimal(18,9)小数位左右各为9位数,此数据所占以上表格即为4字节整数位,4字节小数位;

decimal(20,6)整数位为14位,小数位位6位,此数据需要4个字节给整数位的9位和3字节给另外的5位整数,另外小数位需要3个字节,总共是4+3+3 = 11个字节。

decimal不能够存储以“+”、“-”和“0”开头的数据,如果是“+”开头momo默认存为正数,而“-”开头则不存储

具体的对decimal的定义,可以在mysql源码中的strings/decimalc文件中的decimal2bin()函数查看。

Decimal为SQL Server、MySql等数据库的一种数据类型,可以在定义时划定整数部份以及小数部分的位数,以保证存储的数据更精确。

C中没有这个类型,在做数据库C语言开发时,可以将此类型数据定义为double类型数据。

类似的变量对应还有:

varchar 对应C中的char类型

date 对应C中的int类型

number对应C中的long类型

对于游戏币等代币,一般存储为int类型是可行的。问题在于越界,int类型长度为11位。

在存储人民币相关的金额的时候,则只能存储到9长度的人民币,也就是说,最大只能存储999999999,不到10亿的数值,如果业务增长很快的话,就会给自己留下隐患。

Decimal:Decimal为专门为财务相关问题设计的数据类型。

DECIMAL从MySQL 51引入,列的声明语法是DECIMAL(M,D)。在MySQL 51中,参量的取值范围如下:M是数字的最大数(精度)。其范围为1~65(在较旧的MySQL版本中,允许的范围是1~254),M 的默认 值是10。

D是小数点右侧数字的数目(标度)。其范围是0~30,但不得超过M。说明:float占4个字节,double占8个字节,decimail(M,D)占M+2个字节。

如DECIMAL(5,2) 的最大值为9 9 9 9 9 9,因为有7 个字节可用。能够解决数据的范围和精度的问题。

扩展资料

MySQL数据类型DECIMAL用法:

MySQL DECIMAL数据类型用于在数据库中存储精确的数值。我们经常将DECIMAL数据类型用于保留准确精确度的列,例如会计系统中的货币数据。

要定义数据类型为DECIMAL的列,请使用以下语法:column_name  DECIMAL(P,D);

在上面的语法中:

P是表示有效数字数的精度。 P范围为1〜65。

D是表示小数点后的位数。 D的范围是0~30。MySQL要求D小于或等于(<=)P。

DECIMAL(P,D)表示列可以存储D位小数的P位数。十进制列的实际范围取决于精度和刻度。

与INT数据类型一样,DECIMAL类型也具有UNSIGNED和ZEROFILL属性。 如果使用UNSIGNED属性,则DECIMAL UNSIGNED的列将不接受负值。

如果使用ZEROFILL,MySQL将把显示值填充到0以显示由列定义指定的宽度。 另外,如果我们对DECIMAL列使用ZERO FILL,MySQL将自动将UNSIGNED属性添加到列。

以上就是关于decimal(10,2) 是什么意思 在一个表中全部的内容,包括:decimal(10,2) 是什么意思 在一个表中、数据库中,Decimal数据类型,精度指的是什么意思谢谢、mysql decimal可以为负数吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9474254.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存