Debug和Release下对浮点误差的累积问题

glacier3d 2010-05-23 06:48:36
我在写一个几何计算类的程序,其中有大量的浮点计算,现在发现Release下和Debug下程序生成的结果有明显偏差,经初步分析,貌似Release下对浮点计算进行了大量优化(在项目属性里把2级优化关了,结果就和Debug下一样了),比如Release优化后的浮点指令的操作顺序变了,而且比Debug下的少了许多。Release下和Debug下生成的结果不同,对此,现在感觉很不爽,不知道那位大哥大姐也遇到的类似问题。

最好多谈点浮点误差方面的经验,尤其是Release下和Debug下的区别。不胜感激!

...全文
196 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
oracle9901 2010-05-25
  • 打赏
  • 举报
回复
如果做精确计算,还是自己写相应的算法为好,用系统的难免会出现误差!
iqyely 2010-05-25
  • 打赏
  • 举报
回复
来关注下。
liumenghappy 2010-05-25
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 visualeleven 的回复:]

http://hi.baidu.com/sunsee/blog/item/c43585c2a6ea4f1f0ff477fe.html
Release和Debug的区别。。。
[/Quote]
学习了
xiuxianshen 2010-05-24
  • 打赏
  • 举报
回复
如果是需要进行高精度的话,还是不能单单依靠编译器本身的精度来处理
而且在release版本下,本身就会进行一些对精度的修正优化
Normandie007 2010-05-24
  • 打赏
  • 举报
回复
来学习下
康斯坦汀 2010-05-24
  • 打赏
  • 举报
回复
这个跟语言无关,跟计算机有关,任何语言下,浮点数都有精度问题,精度不够,
浮点数计算结果会产生错误,是近似值,这是典型的计算机问题。
所以严格来说,这个问题跟什么debug,release或者优化都是没有关系的。是你
使用浮点数的方法不对。
Eleven 2010-05-24
  • 打赏
  • 举报
回复
向立天 2010-05-24
  • 打赏
  • 举报
回复
能不用浮点数就不用浮点数
用整型算
快乐鹦鹉 2010-05-24
  • 打赏
  • 举报
回复
浮点数虽然小数位数可以很长,但是有效位数是有限的。你应该将你的浮动数计算结果的有效值控制在浮点数的有效位数内,否则就难以保证了。也许一些专用的计算机能够解决这种问题,比如军用,航空等。
wuhuwy 2010-05-24
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 cnzdgs 的回复:]
可以用#pragma optimize为某一段代码指定优化选项.
[/Quote]
顶,学习一下
justin_shi 2010-05-24
  • 打赏
  • 举报
回复
事实上,这个跟CPU有关。。。。
cnzdgs 2010-05-24
  • 打赏
  • 举报
回复
可以用#pragma optimize为某一段代码指定优化选项.

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧