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

解决方案 »

  1.   

    可以用#pragma optimize为某一段代码指定优化选项.
      

  2.   

    http://hi.baidu.com/sunsee/blog/item/c43585c2a6ea4f1f0ff477fe.html
    Release和Debug的区别
      

  3.   

    这个跟语言无关,跟计算机有关,任何语言下,浮点数都有精度问题,精度不够,
    浮点数计算结果会产生错误,是近似值,这是典型的计算机问题。
    所以严格来说,这个问题跟什么debug,release或者优化都是没有关系的。是你
    使用浮点数的方法不对。
      

  4.   

    如果是需要进行高精度的话,还是不能单单依靠编译器本身的精度来处理
    而且在release版本下,本身就会进行一些对精度的修正优化