首页 > 代码库 > 使用浮点类型导致计算误差以及判断误差
使用浮点类型导致计算误差以及判断误差
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;
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。