使用Math.Atan2后出现错误,感觉是内存错误

 

      发现过程:如上代码在Debug和Release下执行程序时,出来的结果不一样(Bebug下找到6个,Release下找到4个),由于代码中并没有使用不安全代码,所以怀疑是Math.Atan2的问题,于是在代码483行加入代码 File.AppendAllText("Azimuth.txt", azimuth.ToString() + Environment.NewLine);想打印出Release时计算出来的角度,但是一加这行代码后,结果却莫名其妙的正确了。后来由于考虑到实现中实际只需要按方向做角度排序,并不需要算出较精确的角度,所以在代码208行用了一个其他的方法绕过了Math.Atan2的使用,至此代码不管在Debug下还是在Release下都能正常出结果了。

        因为以前只有在c++中出现过这种问题,是因为指针使用不当,出现的内存问题,所以这边只能怀疑是Math.Atan2的方法有较隐蔽的内存错误,而Math.Atan2这个方法微软也确实是调用了它的底层库,不知其具体实现。也请各位大侠指点

 

ps:

1.这条大虾请无视,Debug下F5还是Ctrl+F5没关系,但Release必须Ctrl+F5或者运行编译后的exe才算执行程序,才能看到差异

2.我同事的机器和我自己家里的机器都会出这问题,但我自己公司的机器确没有这问题,所以我这不能保证这个问题一定能在你的机器上出现

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冰风漫天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值