浮点数精度问题.doc

浮点数精度问题.doc

ID:59370392

大小:11.50 KB

页数:1页

时间:2020-09-04

浮点数精度问题.doc_第1页
资源描述:

《浮点数精度问题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、浮点数精度问题一、浮点数的概念及误差问题:  浮点数是用来表示实数的一种方法,它用M(尾数)*B(基数)的E(指数)次方来表示实数,相对于定点数来说,在长度一定的情况下,具有表示数据范围大的特点。但同时也存在误差问题,这就是著名的浮点数精度问题!  浮点数有多种实现方法,计算机中浮点数的实现大都遵从IEEE754标准,IEEE754规定了单精度浮点数和双精度浮点数两种规格,单精度浮点数用4字节(32bit)表示浮点数,格式是:1位符号位8位表示指数23位表示尾数  双精度浮点数8字节(64bit)表示实数,格式是:1位符

2、号位11位表示指数52位表示尾数  同时,IEEE754标准还对尾数的格式做了规范:d.dddddd...,小数点左面只有1位且不能为零,计算机内部是二进制,因此,尾数小数点左面部分总是1。显然,这个1可以省去,以提高尾数的精度。由上可知,单精度浮点数的尾数是用24bit表示的,双精度浮点数的尾数是用53bit表示的,转换成十进制:2^24-1=        2^53-1=40991  由上可见,IEEE754单精度浮点数的有效数字二进制是24位,按十进制来说,是8位;双精度浮点数的有效数字二进制是53位,按十进制来说

3、,是16位。显然,如果一个实数的有效数字超过8位,用单精度浮点数来表示的话,就会产生误差!同样,如果一个实数的有效数字超过16位,用双精度浮点数来表示,也会产生误差!对于.66这个数,有效数字是24位,用单精度或双精度浮点数表示都会产生误差,只是程度不同:  单精度浮点数:.00  双精度浮点数:.00  双精度差了0.66,单精度差了近4万亿!采用IEEE754标准的计算机浮点数,在内部是用二进制表示的,但在将一个十进制数转换为二进制浮点数时,也会造成误差,原因是不是所有的数都能转换成有限长度的二进制数。对于.32这个

4、数,其有效数字是8位,按理应该能用单精度浮点数准确表示,为什么会出现偏差呢?看一下这个数据二进制尾数就明白了0001......  显然,其尾数超过了24bit,根据舍入规则,尾数只取00,结果就变成单精度浮点数表示.,只有前8位才是有效的。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。