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