浮点数

来源:互联网 发布:二级域名绑定ip加端口 编辑:程序博客网 时间:2024/04/28 11:29

浮点数是表示小数的一种方法。所谓浮点就是小数点的位置不固定,与此相反有定点数,即小数点的位置固定。整数可以看做是一种特殊的定点数,即小数点在末尾。8086/8088中没有浮点数处理指令,不过从486起,CPU内置了浮点数处理器,可以执行浮点运算。一般的浮点数有点象科学计数法,包括符号位、指数部分和尾数部分。

 

对于浮点数,请看这段解释:

如果未设置程序属性”定点算法”,则将类型P 字段解释为无小数位的正数。DATA 语句的参数
DECIMALS
只影响WRITE输出的格式。
因此,SAP 建议在使用类型P 字段时,总是设置程序属性“定点算法”(参见指定程序属性)。
然后,在将类型P 字段输出到输出列表中时,关键字DECIMALS 不仅指小数点位置,而且考虑算术
运算中的小数位。
对于中间结果,ABAP/4 计算不超过31 位(在小数点之前和之后)。如果设置“定点算法”,则
ABAP/4
中对于压缩数的计算与袖珍计算器计算方式相同。

DATA: P TYPE P.
P = 1 / 3 * 3.
WRITE P.
如果未设置程序属性”定点算法”,则结果为0,这是因为除法结果被内部取整为0
如果设置程序属性“定点算法”,则结果为1,这是因为除法结果被内部存储
0.333333333333333333333333333333
,精度达31 位数字。

 

浮点数在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学记数法。

浮点计算是指浮点数参与的运算,这种运算通常伴随着因为无法精确表示而进行的近似或舍入。

一个浮点数a由两个数me来表示:a = m × be。在任意一个这样的系统中,我们选择一个基数b(记数系统的基)和精度p(即使用多少位来存储)。m(即尾数)是形如±d.ddd...dddp位数(每一位是一个介于0b-1之间的整数,包括0b-1)。如果m的第一位是非0整数,m称作规格化的。有一些描述使用一个单独的符号位(s 代表+或者-)来表示正负,这样m必须是正的。e是指数。

这种设计可以在某个固定长度的存储空间内表示定点数无法表示的更大范围的数。

例如,一个指数范围为±44位十进制浮点数可以用来表示432104.3210.0004321,但是没有足够的精度来表示432.12343212.3(必须近似为432.143210)。当然,实际使用的位数通常远大于4

此外,浮点数表示法通常还包括一些特别的数值:+∞−∞(正负无穷大)以及NaN'Not a Number')。无穷大用于数太大而无法表示的时候,NaN则指示非法操作或者无法定义的结果。

大部份计算机采用二进制(b=2)的表示方法。位(bit)是衡量浮点数所需存储空间的单位,通常为32位或64位,分别被叫作单精度和双精度。有一些计算机提供更大的浮点数,例如英特尔公司的浮点运算单元Intel8087协处理器(以及其被集成进x86处理器中的后代产品)提供80位长的浮点数,用于存储浮点运算的中间结果。还有一些系统提供128位的浮点数 
原创粉丝点击