数据类型当中的浮点数
浮点数类型在我们的日常生活中还是非常常见的呢。一般情况下,在我们储存数据的时候,都会遇到小数,如某一些商品的价格,这个时候就能用到今天小编要介绍的浮点数类型了。浮点数的类型分为单精度浮点数以及双精度浮点数。
(一)单精度浮点数
单精度浮点数的声明语法为float(M,D),通常用4字节来进行存储数据,其中,M代表浮点数可容纳的最大长度,就是说小数点前后加起来的的总长,D指的是小数点后精确的位数。
要是声明float(4,2),指的是总长度为4的小数,在小数点后可以存储2位,剩余尾数四舍五入,小数点前面可以存储2位,超过的会让数字变为4位小数可储存的最大值,就是说99.99。如下例:
注意:单精度浮点数用4个字节来存储数据,要是声明单精度浮点数时没有声明范围,其中不包含括号以及括号当中的参数,这样的话默认储存范围为-3.402823466E+38到-1.175494351E-38、0以及从1.175494351E-38到3.402823466E+38。
(二)双精度浮点数
双精度浮点数声明语句为double(M,D),它是使用8个字节存储数据的,双精度浮点数的使用方法与单精度完全相同,不一样的是,要是声明双精度浮点数的时侯没有声明范围,这样的话默认承认的范围为-1.7976931348623157E+308到-2.2250738585072014E-308、0以及2.2250738585072014E-308到1.7976931348623157E+308。
双精度浮点数的使用方法可以参考单精度浮点数部分,只需要把float换成double。
(三)怎么用decimal类型储存小数
不管单精度还是双精度储存浮点数,都会存在精度损失,而为了避免精度损失最好就是用decimal以及decimal类型声明语法Decimal(M,D),M声明可以存放的小数总长度以及D声明小数点后能够精确多少位是与单精度浮点数相同的。
Decimal类型精度范围从1到31;
存储Decimal数据时,字节数计算公式为:总长度/2+1(注意:忽略小数),如decimal(9,4)所占的字节是9/2=4.5,所以得4,然后用4+1=5字节。要是没有为decimal列定义提供精度以及小数位值,在缺省时,用精度值5以及小数位值0,所以一般就需要3个字节的存储空间。
以下为关于单精度浮点数精度损失问题的实例:
注意:储存比较大的浮点数的时侯,可以用decimal类型进行储存,要是想要知道浮点数的储存会损失精度的原因可以参考计算机原理基础书籍。
总结:浮点类型以及整数类型的区别主要在取值范围和精度上。我们在学习的时候一定要记得及时的的复习前面学习过的内容哦,这样子,我们才可以牢固的掌握知识哦。希望这篇文章可以帮助到大家。