共用方式為


Val 函式

更新: 2008 年 7 月

將包含在字串中做為適當型別數值的數字傳回。

Public Overloads Function Val(ByVal InputStr As String) As Double
' -or-
Public Overloads Function Val(ByVal Expression As Object) As Double
' -or-
Public Overloads Function Val(ByVal Expression As Char) As Integer

參數

  • Expression, InputStr
    必要項。任何有效的 String 運算式、Object 變數或 Char 值。如果 Expression 是 Object 型別,則它的值必須可轉換為 String,否則會發生 ArgumentException 錯誤。

例外狀況

例外狀況類型

錯誤代碼

條件

OverflowException

6

InputStr 太大了。

ArgumentException

438

Object 型別運算式無法轉換為 String。

如果將使用非結構化錯誤處理的 Visual Basic 6.0 應用程式升級,請參閱「錯誤代碼」資料行 (您可以將錯誤代碼與 Number 屬性 (Err 物件) 比對)。但是,請盡可能考慮以 Visual Basic 的結構化例外處理概觀 取代這類錯誤控制項。

注意事項:

InvalidCastException 例外狀況,錯誤代碼 13,可能是回應部分不常見的數字格式所引發。如需此錯誤的詳細資訊,請參閱型別不符 (Visual Basic)。例如,下列程式碼會引發例外狀況。

' These examples cause run-time errors.

'Console.WriteLine(Val("1.34%"))

'Console.WriteLine(Val("1.34&"))

格式化為 Double 的數字和 Integer 與 Long 型別字元間的衝突,如果未隱藏於字串中,就會由編譯器攔截。

' These examples cause compiler errors.

'Dim m = 1.34%

'Dim n = 1.34&

備註

Val 函式會在它無法辨認成數字部分的第一個字元處,停止讀取字串。符號和字元常被視為數值的一部分,例如錢幣符號和逗號,因此往往無法辨認。儘管如此,函式還是能夠辨識基數 (Radix) 前置碼 &O (八進位) 和 &H (十六進位)。空白、定位鍵與換行字元也都會從引數中除去。

下列呼叫會傳回 1615198 的值。

Val(" 1615 198th Street N.E.") 

下列呼叫會傳回十進位值 -1。

Val("&HFFFF") 
注意事項:

Val 函式只會將句號 (.) 辨認為有效的十進位分隔符號。當在如國際性應用程式中需要使用不同的十進位分隔符號時,請改用 CDbl 或 CInt 以將字串轉換為數字。若要將特定文化特性的某個數字之字串表示轉換成數值,請使用該數字型別的 Parse(String, IFormatProvider) 方法。例如,將字串轉換成 Double 時,可使用 Double.Parse

範例

下列範例會使用 Val 函式來傳回每個字串中所含的數字。Val 會停止在第一個字元處的轉換,因其無法解譯成數字位數、數字修飾詞 (Modifier)、數字標點符號或泛空白字元 (White Space)。

Dim valResult As Double
' The following line of code sets valResult to 2457.
valResult = Val("2457")
' The following line of code sets valResult to 2457.
valResult = Val(" 2 45 7")
' The following line of code sets valResult to 24.
valResult = Val("24 and 57")

需求

命名空間 (Namespace)︰Microsoft.VisualBasic

**模組︰**Conversion

組件 (Assembly):Visual Basic Runtime Library (在 Microsoft.VisualBasic.dll 中)

請參閱

參考

Str 函式

型別轉換函式

OverflowException

InvalidCastException

ArgumentException

變更記錄

日期

記錄

原因

2008 年 7 月

在「例外狀況」一節中加入注意事項,說明 InvalidCastException 例外狀況會在什麼情況下發生。

客戶回函。