1

これは簡単かもしれませんが、正しく行う方法を確認する必要があります。decimal数値が範囲内にあるかどうかを確認するにはどうすればよいですか?

私は2つの10進数を持っています:

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

Dim varResult as decimal

varResultここで、計算された値が 2 つの要因の範囲内にあるかどうかを確認したいと思います。そうであれば、 を返しtrueます。

最も正しい練習方法は?

私は試した:

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

3 に答える 3

5

>=and<=演算子を使用するだけです。

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入力がまったく無効な場合も必要であることに注意してください。

于 2012-12-21T08:47:18.543 に答える
0

単純 :

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

ありがとう

于 2012-12-21T08:48:03.727 に答える
0

値を各範囲と比較するだけです。

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

範囲制限が包括的である必要がある場合は>=and演算子を使用でき、範囲制限が排他的である必要がある場合はand演算子を使用できます。<=><

複数の範囲があり、一方の範囲がもう一方の範囲を引き継ぐ場合、下限を包括的に、上限を排他的にするのが一般的です。そうすれば、範囲が重なる場所に値がなくなります。

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
于 2012-12-21T08:47:31.603 に答える