複製鏈接
請複製以下鏈接發送給好友

VAL

(編程函數)

鎖定
編程函數:編程語言中Val是一個把字符串轉為數值函數,它返回包含於字符串內的數字,字符串中是一個適當類型的數值。
外文名
VAL
類    型
編程函數

目錄

VAL編程函數

這是一個把字符串轉為數值的函數,將S轉為它的數值形式存入V中。
它返回包含於字符串內的數字,字符串是一個適當類型的數值。通常在visual foxpro(數據庫管理系統)中用的比較多。
1、語法
Val(string)
必要的 string 參數可以是任何有效的字符串表達式。
2、説明
Val ( )函數,在它不能識別為數字的第一個字符上,停止讀入字符串。那些被認為是數值的一部分的符號和字符,例如美圓號逗號,都不能被識別。但是函數可以識別進位制符號 &O(八進制)和 &H(十六進制)。空白、製表符換行符都從參數中被去掉。
Procedure Val(S:String; Var V; Var Code:Integer)中
S 是由一系列數字字符構成的字符串類型變量;
V 是整型或實型變量
Code 是Integer型變量,表示字符串轉整數是否成功。
例:
函數 函數
下面的返回值為 1615198 :Val(" 1615198th Street N.E.")
下面的代碼中,Val 為所示的十六進制數值返回十進制數值 -1。
Val("&HFFFF")
3、Code詳解
如果成功,Code的值是0 ;
如果不成功,則Code的值為第一個轉換不成功的字符的位置。
比如:
執行 Val('12345',a,Code) 後Code的值為0 ,表示轉換成功,a的值為12345。
執行 Val('12#32',a,Code) 後Code的值為3 ,表示在你要轉換的字符串的第三位有一個非數字的字符,導致無法轉換。此時a中沒有你要的值。
4、具體示例
Var S:String; I, Code: Integer;
Begin
S:='1234';
Val(S,I,Code);
Writeln(i); {這裏輸出了1234 }
End.
5、注意
Val 函數只會將句點(.)當成一個可用的小數點分隔符。當使用不同的小數點分隔符時,如在國際版應用程序中,代之以 CDbl 來把字符串轉換為數字。
將一個數據行變量轉換成數字長整型變量 如
text1.text = "10"
text2.text = "11"
text3.text = text1.text+text2.text
按道理應該得到10+11(結果是21),但是返回什麼呢?返回的是1011 這個是因為運算時候是字符運算 所以這樣不行 那麼怎麼辦呢?
text1.text = "10"
text2.text = "11"
text3.text = val(text1.text)+val(text2.text)
這樣就返回21了 因為這裏不是計算"11"+"12"而是計算11+12 前者等同於"11" & "12"
如果是字符串或者空格會返回一個0 所以可以利用這一點過濾字符只能輸入數字
例:
Dim MyValue
MyValue = Val("2457") ' 返回 2457。
MyValue = Val(" 2 45 7") ' 返回 2457。
MyValue = Val("24 and 57") ' 返回 24。