我有下面的类不正确的浮子asignment
class Viewport
{
public:
Viewport();
~Viewport();
void setSize(float x, float y);
private:
float _X;
float _Y;
};
void Viewport::setSize(float x, float y)
{
//Conditionals used to make sure that the viewport stays inside the [0.0f, 1.0f] range
if(x < 0.0f)
_X = 0.0f;
else if(x > 1.0f)
_X = 1.0f;
else
_X = x;
if(y < 0.0f)
_Y = 0.0f;
else if(y > 1.0f)
_Y = 1.0f;
else
_Y = y;
}
我创建视口
Viewport vps[3];
uint _NumCascades = 3;
for(uint i = 0; i < _NumCascades; i++)
vps[i].setSize(i * (1.0f/_NumCascades), 0.0f);
当i == 1
和i==2
在线路_X = x;
因为_X
的值指定为1051372203
代替时出现奇怪的错误的矢量的0.33333334f
在我的机器上正常工作,在某些特定的编译器版本中看起来像是一个晦涩难懂的错误太严重了。这段代码究竟是导致这种奇怪行为还是简化版本? – Gorpik
设置_X和_Y应该工作。然而,使用operator- =来表示宽度和高度很奇怪。 – Mehrwolf
这是你的全部代码吗?你没有'main'函数,uint'不是我所知的类型。你能发布一个完整的可编译示例来展示你的问题吗? – Kevin