【发布时间】:2016-11-09 17:49:35
【问题描述】:
我正在添加到我的 for 循环中以查找我从解析文本文件获得的数组中的最小值和最大值。找到最大值很容易,但是对于最小值,我在应该为 1 的地方得到了一个零值。这是我用于循环的内容-(到目前为止,我只是在测试以获取 temp 的最小值。 x)
for (int i = 0; i < lineCount; i++) {
string line = dataLines [i];
lineValues = line.Split (' ');
Vector4 temp = new Vector4 ();
Vector3 center = new Vector3 ();
temp.x = float.Parse (lineValues [0]);
maxvalueX = float.MinValue;
minvalueX = float.MaxValue;
if (temp.x > maxvalueX) { maxvalueX = temp.x; }
if (temp.x < minvalueX) { minvalueX = temp.x; }
temp.y = float.Parse (lineValues [1]);
if (temp.y > maxvalueY) { maxvalueY = temp.y; }
temp.z = float.Parse (lineValues [2]);
if (temp.z > maxvalueZ) { maxvalueZ = temp.z; }
temp.w = float.Parse (lineValues [3]);
data.myData [i].Set (scaleFactor*temp.x, scaleFactor*temp.y, scaleFactor*temp.z, temp.w);
data.myData [i].Set (scaleFactor*temp.x, scaleFactor*temp.y, scaleFactor*temp.z, temp.w);
//int value = data.myData [i].x;
center.x = ((maxvalueX-1)/2);
center.y = ((maxvalueY-1)/2);
center.z = ((maxvalueZ-1)/2);
data.dataCenter.Set (scaleFactor*center.x, scaleFactor*center.y, scaleFactor*center.z);
}
任何关于这里出了什么问题的想法将不胜感激!谢谢! 仁
【问题讨论】:
-
您将最小值初始化为什么?通常,您希望将它们设置为
float.MaxValue之类的东西。如果你不初始化它们,那么它们默认为 0,小于 1。如果你的所有值都是负数,你会遇到与 max 相同类型的问题,所以它真的应该初始化为类似 @987654323 @. -
为什么不使用 dataLines.Min();买最小的?
-
您需要将
maxvalueX = float.MinValue;和minvalueX = float.MaxValue;放在循环之前以避免重置值。