類型轉換

類型轉換

每個函式都可以強制將一個表達式轉換成某種特定數據類型。自動(隱式)類型轉換不會導致數據丟失。數據類型在數據結構中的定義是一個值的集合以及定義在這個值集上的一組操作。 變數是用來存儲值的所在處;它們有名字和數據類型。變數的數據類型決定了如何將代表這些值的位存儲到計算機的記憶體中。在聲明變數時也可指定它的數據類型。所有變數都具有數據類型,以決定能夠存儲哪種數據。

基本語法

CBool(expression)
CByte(expression)
CCur(expression)
CDate(expression)
CDbl(expression)

類型轉換類型轉換
CDEC(expression)
CInt(expression)
CLng(expression)
CSng(expression)
CStr(expression)
CVar(expression)
必要的 expression 參數可以是任何字元串表達式或數值表達式。
返回類型函式名稱決定返回類型,如下所示:
函式返回類型 expression 參數範圍
CBool Boolean 任何有效的字元串或數值表達式。
CByte Byte 0 至 255。
CCur Currency -922,337,203,685,477.5808 至922,337,203,685,477.5807。
CDate Date 任何有效的日期表達式。
CDbl Double 負數從 -1.79769313486232E308 至 -4.94065645841247E-324;正數從 4.94065645841247E-324 至 1.79769313486232E308。
CDec Decimal 零變比數值,即無小數位數值,為 +/-79,228,162,514,264,337,593,543,950,335。對於 28 位小數的數值,範圍則為 +/-7.9228162514264337593543950335;最小的可能非零值是 0.0000000000000000000000000001。
CInt Integer -32,768 至 32,767,小數部分四捨五入。
CLng Long -2,147,483,648 至 2,147,483,647,小數部分四捨五入。
CSng Single 負數為 -3.402823E38 至 -1.401298E-45;正數為 1.401298E-45 至 3.402823E38。
CStr String 依據 expression 參數返回 Cstr。
CVar Variant 若為數值,則範圍與 Double 相同;若不為數值,則範圍與 String 相同。

詳細說明

說明如果傳遞給函式的 expression 超過轉換目標數據類型的範圍,將發生錯誤。
通常,在編碼時可以使用數據類型轉換函式,來體現某些操作的結果應該表示為特定的數據類型,而不是預設的數據類型。
例如,當單精度、雙精度或整數運算發生的情況下,使用 CCur 來強制執行貨幣運算。應該使用數據類型轉換函式來代替 Val,以使國際版的數據轉換可以從一種數據類型轉換為另一種。
例如,當使用 Ccur 時,不同的小數點分隔設定、千分位分隔設定和各種貨幣選項,依據系統的國別設定都會被妥善識別。當小數部分恰好為 0.5 時,Cint 和 CLng 函式會將它轉換為最接近的偶數值。
例如,0.5 轉換為 0、1.5 轉換為 2。Cint 和 CLng 函式不同於 Fix 和 Int 函式,Fix 和 Int 函式會將小數部分截斷而不是四捨五入。並且 Fix 和 Int 函式總是返回與傳入的數據類型相同的值。
使用 isdate 函式,可判斷 date 是否可以被轉換為日期或時間。

類型轉換類型轉換
Cdate 可用來識別日期文字和時間文字,以及落入可接受的日期範圍內的數值。當轉換一個數字成為日期時,是將整數部分轉換為日期,小數部分轉換為從午夜起算的時間。CDate 依據系統上的國別設定來決定日期的格式。如果提供的格式為不可識別的日期設定,則不能正確判斷年、月、日的順序。另外,長日期格式,若包含有星期的字元串,也不能被識別。
CVDate 函式也提供對早期 Visual Basic 版本的兼容性。CVDate 函式的語法與 CDate 函式是完全相同的,不過,CVDate 是返回一個 Variant,它的子類型是 Date,而不是實際的 Date 類型。因為現在已有真正的 Date 類型,所以 CVDate 也不再需要了。轉換一個表達式成為 Date,再賦值給一個 Variant,也可以達到同樣的效果。也可以使用這種技巧將其他真正的數據類型轉換為對等的 Variant 子類型。
注意 CDec 函式不能返回獨立的數據類型,而總是返回一個 Variant,它的值已經被轉換為 Decimal 子類型。

相關搜尋

熱門詞條

聯絡我們