首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

vs2003太差劲了,int num = 100 * 0.02f 居然等于1,而VS2008就正常.解决方案

2012-03-31 
vs2003太差劲了,int num 100 * 0.02f 居然等于1,而VS2008就正常.如题..........[解决办法]探讨赤裸裸的

vs2003太差劲了,int num = 100 * 0.02f 居然等于1,而VS2008就正常.
如题..........

[解决办法]

探讨赤裸裸的缺陷。...

还有那个万恶的 for(int i=0 ..) i在作用域之外还能被引用的问题..

[解决办法]
楼主浮点问题的答案在这里http://msdn.microsoft.com/en-us/library/e7s85ffb(v=vs.90).aspx

With /fp:precise on x86 processors, the compiler will perform rounding on variables of type float to the proper precision for assignments and casts and when passing parameters to a function.

意思是/fp:precise使得编译器搞舍入(rounding),而不是所谓严格的(strict)计算

vs2008下默认是/fp:precise,如果设置成/fp:strict,结果就与vs2003一样了
[解决办法]
2003有对6.0的程序进行一些兼容
而6.0 C++标准还没出生呢
所以
for(int i;;)
...
这种东西出来到外面还能用是正常的
还有vector的实现与2005之后的也不一样
2003 --vec.begin(),就会变成 vec.end()
迭代器删除之后 一个--iter还能接得回去不会失效
vec._MyFirst可以直接拿出来用
还可以调试HLSL

这些到了2005就全部修改了

不是差劲 只是一些东西调整了而已

都啥年代了 早该换了...

热点排行