double.MaxValue和double.MinValue在以下上下文中的含义是什么?

时间:2014-02-19 01:27:06

标签: c#

double.MaxValuedouble.MinValue在以下背景中的含义是什么:

double minX, minY, maxX, maxY;
minX = double.MaxValue;
minY = double.MaxValue;
maxX = double.MinValue;
maxY = double.MinValue;

for(int i = 0 ; i < HPts.BranchCount; i++){
  foreach(Point3d pt in HPts.Branch(i)){
    if(minX > pt.X){
      minX = pt.X;
    }

    if(minY > pt.Y){
      minY = pt.Y;
    }

    if(maxX < pt.X){
      maxX = pt.X;
    }

    if(maxY < pt.Y){
      maxY = pt.Y;
    }

3 个答案:

答案 0 :(得分:4)

它们是您可以在double中存储的最大值和最小值。

这用于确定最小/最大X和Y位置。例如,首先将minX设置为double的最大允许值,第一次循环,minX > pt.X将为true,这将导致minX设置为第一次X值。最终,X的最小值将存储在那里。

答案 1 :(得分:2)

当您在集合中寻找最小值时,一种常见的方法是将结果初始化为超出集合中任何可能数字的值。这样,第一次比较就会成功,使初始值成为新的最小值。 double.MaxValue提供了这样一个值:其他有效的双精度数小于它。

当您的收藏品被允许为空时,您可以这样做;否则,您可以将当前最小值和最大值初始化为集合的初始元素。

答案 2 :(得分:0)

双精度浮点数支持的最大值和最小值。使用默认/初始值。

正面/负面 - &gt; 1.7976931348623157E + 308。

http://msdn.microsoft.com/en-us/library/system.double.minvalue(v=vs.110).aspx

http://msdn.microsoft.com/en-us/library/system.double.maxvalue(v=vs.110).aspx