C# 中计算 double 类型时出错,0.1*0.1 为什么不是等于0.01百度了一下说是精度问题,说是换 decimal类型计算,但是我求幂,超出了decimal类型的范围,

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 14:51:56
C# 中计算 double 类型时出错,0.1*0.1 为什么不是等于0.01百度了一下说是精度问题,说是换 decimal类型计算,但是我求幂,超出了decimal类型的范围,

C# 中计算 double 类型时出错,0.1*0.1 为什么不是等于0.01百度了一下说是精度问题,说是换 decimal类型计算,但是我求幂,超出了decimal类型的范围,
C# 中计算 double 类型时出错,0.1*0.1 为什么不是等于0.01
百度了一下说是精度问题,说是换 decimal类型计算,但是我求幂,超出了decimal类型的范围,

C# 中计算 double 类型时出错,0.1*0.1 为什么不是等于0.01百度了一下说是精度问题,说是换 decimal类型计算,但是我求幂,超出了decimal类型的范围,
浮点比较式不能用等于判断的.计算机处理的时候是会出现偏差的.一般都是设置一个偏差值比较.计算机的本身的限制没有办法.如果是确定了精度的话可以取整比较,不过是会有点偏差的
假设你的数值精度只有小数点后3位,那就直接四舍五入到小点后三位,然后作为字符串比较或者乘1000取整比较