码迷,mamicode.com
首页 > 其他好文 > 详细

使用浮点类型导致计算误差以及判断误差

时间:2014-05-30 20:13:26      阅读:216      评论:0      收藏:0      [点我收藏+]

标签:c   style   a   使用      问题   

1.计算误差

浮点的精度是可变的,除非分数是2的整数幂次方,否者无法用有限的二进制小数表示。

即 0.1 分母为10, 则分数应该是2的3次方至2的4次方之间,具体是多少我也算不出来了···。即这个次方数会为一个特别长的小数,在有限的长度中无法体现出来。

则0.1会被表示为一个十分接近0.1的值,如0.1000000000000000001 或0.099999999999999999

所以在精确的计算中,使用浮点类型会造成计算的误差。

使用decimal可以解决此问题,不过decimal的范围比浮点类型来说相对较小,所以在将浮点类型转换成decimal类型时,有溢出的风险。

2.判断误差

基于上述解释

float num1=0.1F;

decimal num2=0.1M;

则 num1!=num2;

使用浮点类型导致计算误差以及判断误差,布布扣,bubuko.com

使用浮点类型导致计算误差以及判断误差

标签:c   style   a   使用      问题   

原文地址:http://www.cnblogs.com/Jersen/p/3760115.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!