首页 > 其他 > 详细

浮点类型的精度问题

时间:2015-10-02 23:39:49      阅读:218      评论:0      收藏:0      [点我收藏+]

代码:

 技术分享

结果:

 技术分享

那么为什么对double类型的数据进行计算得不到“精确”的结果呢?

 

我们知道在计算机中浮点数的表示方法是由一个整数(即尾数)乘以一个基数(计算机中一般为2)的整次幂得到。(类似于科学计数法,科学记数法基数为10

float的内存结构为:符号位表示正负,1位 指数位,8位 尾数位,32(符号位1表示负,0表示正

指数是以2为底的,范围是 -128 到 127,如果超过了127,则从-128开始计。                                   即:127+1=-128

尾数都省去了第1位的1,所以在还原时要先在第一位加上1。它可能包含整数和纯小数两部分,也可能只包含其中一部分,视数字大小而定。对于带有整数部分的浮点数,其整数的表示法有两种,当整数大于十进制的16777215时使用的是科学计数法,如果小于或等于则直接采用一般的二进制表示法。科学计数法和小数的表示法是一样的。

小数部分则是直接使用科学计数法,形式是X * ( 2 ^ n 

这样就导致浮点类型在计算机的存贮中无法精确表示。

浮点类型的精度问题

原文:http://www.cnblogs.com/amiee/p/4852846.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!