检查十进制数是否在一个范围内

时间:2012-12-21 08:38:00

标签: asp.net vb.net decimal

这可能很容易,但我必须确保如何正确行事。如何检查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 

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

只需将值与每个范围进行比较:

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

如果范围限制应该包含在内,您可以使用>=<=运算符;如果范围限制应该是独占的,则可以使用><运算符。< / p>

如果你有一个以上的范围,并且一个范围在另一个结束的地方取代,那么通常使下限为包含且上限为独占,这样就不存在范围重叠的值:

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

答案 2 :(得分:0)

简单:

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

由于