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

来源:学生作业帮助网 编辑:作业帮 时间:2024/11/25 16:05:43
C# 中计算 double 类型时出错,0.1*0.1 为什么不是等于0.01百度了一下说是精度问题,说是换 decimal类型计算,但是我求幂,超出了decimal类型的范围,
xRn@" El%y-*-Jսc^)JqQHB1̽3FcUb{Ϝǝ^ K6:{<%[]Qf:{Dl-8yD 3mfE _R.Kn{.m u +| 7!e&bP8\8?0sB>?cp%EܹIcms;s܋$*dVa7 L)tfI1d{C@k*>o&G$&:ksGƩGǘ!P&= ^ibCQ戆"2wWUnHTR⺑w,pS :a5šZb]1BԮӑV6ieg uhU

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取整比较