2012-12-21 124 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; 

感謝

相關問題