【问题标题】:.NET Greater than/less than not working.NET 大于/小于不工作
【发布时间】:2015-05-14 03:49:41
【问题描述】:

我遇到了大于/小于比较不起作用的问题。

这是正在发生的事情:

假设我有一个正方形,我得到了这个正方形在空间中的最小值和最大值,例如。 minPoint = (0,0,0) 和 maxPoint = (1,1,1)

我在这张脸上放置文字,但我需要文字在方脸内,如果不是,我会缩小尺寸直到适合为止。

这是我在正确获取 minPt 到 maxPt 的距离以及 minPt 到文本位置的距离后的代码。

这是我的行不通的代码:

如果 sizeYPt

它适用于大多数情况,但我遇到过它不起作用的情况。我注意到的一件事是 sizeYPt 与 sizeY 相同,而 sizeXPt 小于 sizeX(应该都是真的!!!啊)

有人知道问题可能是什么吗?这是我的完整代码:

Dim sizeY, sizeX, sizeYPt, sizeXPt As Double
Dim yVect, xVect As New VISIVector

yVect.Put(0, 1, 0)
xVect.Put(1, 0, 0)

sizeY = Util.dist2pts_alongAxis(centerPoint, p2, yVect)
sizeYPt = Util.dist2pts_alongAxis(centerPoint, txtPt, yVect)
sizeX = Util.dist2pts_alongAxis(p1, p2, xVect)
sizeXPt = Util.dist2pts_alongAxis(p1, txtPt, xVect)

If sizeY.ToString.Contains("-") Then sizeY = sizeY * -1
If sizeYPt.ToString.Contains("-") Then sizeYPt = sizeYPt * -1
If sizeX.ToString.Contains("-") Then sizeX = sizeX * -1
If sizeXPt.ToString.Contains("-") Then sizeXPt = sizeXPt * -1

MsgBox(sizeYPt & " | " & sizeY & vbNewLine & sizeXPt & " | " & sizeX)

If sizeYPt <= sizeY And sizeXPt <= sizeX Then Exit Do

【问题讨论】:

  • 也许发布其余的代码?事实上,这不是一个有效的循环。
  • 总而言之,sizeXPt 的输出小于 sizeX,但仍然没有返回 true...@niallmcfc 我的其余代码无需查看。 :P
  • 可能是双值的“问题”,也许这会有所帮助:stackoverflow.com/questions/1398753/…
  • 浮点数学不精确,您需要“足够接近”检查。使用,比如说,如果 SizeYPt - SizeY
  • @HansPassant 这就是解决方案!非常感谢,请回答这个问题,以便您获得信用。 :)

标签: vb.net


【解决方案1】:

浮点数学不精确,您需要“足够接近”检查。使用,比如说,如果 SizeYPt - SizeY

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多