C# 中计算 double 类型时出错,,0.1*0.1 为什么不是等于0.01

百度了一下说是精度问题,,说是换decimal类型计算,,但是我求幂,超出了decimal类型的范围,,,求解决办法~~... 百度了一下说是精度问题,,说是换 decimal类型计算,,但是我求幂,超出了decimal类型的范围,,,求解决办法~~ 展开
 我来答
Heero__Yuy
推荐于2018-04-05 · 超过22用户采纳过TA的回答
知道答主
回答量:37
采纳率:0%
帮助的人:29.5万
展开全部
浮点比较式不能用等于判断的。。。计算机处理的时候是会出现偏差的。。。一般都是设置一个偏差值比较。。。计算机的本身的限制没有办法。。。如果是确定了精度的话可以取整比较,不过是会有点偏差的
假设你的数值精度只有小数点后3位,那就直接四舍五入到小点后三位,然后作为字符串比较或者乘1000取整比较
squall0423
2013-03-08 · TA获得超过2814个赞
知道小有建树答主
回答量:866
采纳率:33%
帮助的人:569万
展开全部
在我这里调试怎么没问题。。。
也是c#
double a = 0.1;
double i = a * a;
或者i = 0.1 * 0.1;结果都是0.01
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式