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

mic*_*knt 1 vb.net asp.net decimal

这可能很容易,但我只需要确保如何正确地做到这一点。如何检查一个decimal数字是否在一个范围内?

我有两个十进制数:

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

Dim varResult as decimal
Run Code Online (Sandbox Code Playgroud)

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

怎样才是最正确的做法?

我试过:

Select Case varResult 
    Case 1.95 To 2.05 
        Unit1 = True 
    Case Else 
        Unit1 = False 
End Select 
Run Code Online (Sandbox Code Playgroud)

Tim*_*ter 5

您可以简单地使用>=<=运算符

If varResult >= minFactor AndAlso varResult <= maxFactor Then
    ' ...
End If
Run Code Online (Sandbox Code Playgroud)

但是由于您使用的是 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"/>
Run Code Online (Sandbox Code Playgroud)

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