C# int 型减double 的出了更多的小数位
   var angle1 = 360 - angle;//angle=290.73
     // angle1得出的结果是  69.269999999999982???

这什么情况???

4个回答

整型和浮点型的存储方式不一样

整数转成浮点数会出现一定的误差,这次计算是先转成浮点数再计算的

0.3用二进制表示的时候是循环小数(0.01001100110011001100110011001100110011001100110011......),再次转换为10进制就有了误差。

存储小数的时候,二进制表示是一个非精确的表示,这是二进制和十进制转换的误差所致;
你可以有两种方式:
1. 继续用目前这种,最后结果进行四舍五入处理;
2. 将小数临时变整数 ,再计算:(360*100-290.73*100)/100
图片说明

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐