2012-12-21 60 views
1

这可能很容易,但我只需确保如何正确执行。如何检查decimal号码是否在一个范围内?检查一个十进制数是否在一个范围内

我有两个十进制数:

Dim minFactor As Decimal = 1.95 
Dim maxFactor As Decimal = 2.05 

Dim varResult as decimal 

现在我要检查我的计算varResult是两个因素的范围内。如果是,请返回true

最正确的做法是怎样的?

我想:

Select Case varResult 
    Case 1.95 To 2.05 
     Unit1 = True 
    Case Else 
     Unit1 = False 
End Select 
+0

选择案例varResult 案例1.95至2.05 = 1单元的Tru Ë 案例否则 1单元=假 最终选择 – micknt

+0

啊...抱歉,代码无法格式化 – micknt

+0

你可以使用:Decimal.Compare – GeorgesD

回答

4

你可以简单地使用>= and <= operators

If varResult >= minFactor AndAlso varResult <= maxFactor Then 
    ' ... 
End If 

但由于您使用ASP.NET我假设用户输入您的问题目标的验证。所以,我会用它为此目的作出了RangeValidator

<asp:RangeValidator id="Range1" 
      ControlToValidate="TextBox1" 
      MaximumValue="2.05" 
      MinimumValue="1.95" 
      Type="Double" 
      EnableClientScript="false" 
      Text="The value must be from 1.95 to 2.05!" 
      runat="server"/> 

请注意,您还需要一个RequiredFieldVFalidator时根本没有输入无效。

+0

嗨,这是在一个代码块内检查,其中以下代码取决于varResult的真/假值 – micknt

0

就值比较每个范围:

If varResult >= minFactor And varResult <= maxFactor Then ... 

您可以使用>=<=操作者是否在区间的上限应该是包容性的,而><运营商如果范围限制应该是排他性的。

如果你有一个以上的范围,一个范围接管了另一端,这是常见的,使下界包容性和上限排斥,这样就没有值,其中范围重叠:

Dim minRange1 As Decimal = 1.95 
Dim maxRange1 As Decimal = 2.05 
Dim minRange2 As Decimal = 2.05 
Dim maxRange2 As Decimal = 2.95 

If varResult >= minRange1 And varResult < maxRange1 Then 
    ... 
ElseIf varResult >= minRange2 And varResult < maxRange2 Then 
    ... 
End If 
0

简单:

If (varResult < maxFactor && varResult > minFactor) 
    return true; 
else 
    return false; 

感谢

相关问题