ASP之數據類型轉換講解
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
每個函數都可以強制將一個表達式轉換成某種特定數據類型。
語法
CBool(expression) CByte(expression) CCur(expression) CDate(expression) CDbl(expression) CDec(expression) CInt(expression) CLng(expression) CSng(expression) CStr(expression) CVar(expression) CStr(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 超過轉換目標數據類型的范圍,將發(fā)生錯誤。通常,在編碼時可以使用數據類型轉換函數,來體現某些操作的結果應該表示為特定的數據類型,而不是缺省的數據類型。例如,當單精度、雙精度或整數運算發(fā)生的情況下,使用 CCur 來強制執(zhí)行貨幣運算。 應該使用數據類型轉換函數來代替 Val,以使國際版的數據轉換可以從一種數據類型轉換為另一種。例如,當使用 Ccur 時,不同的小數點分隔符、千分位分隔符和各種貨幣選項,依據系統(tǒng)的國別設置都會被妥善識別。
當小數部分恰好為 0.5 時,Cint 和 CLng 函數會將它轉換為最接近的偶數值。例如,0.5 轉換為 0、1.5 轉換為 2。Cint 和 CLng 函數不同于 Fix 和 Int 函數,Fix 和 Int 函數會將小數部分截斷而不是四舍五入。并且 Fix 和 Int 函數總是返回與傳入的數據類型相同的值。
使用 IsDate 函數,可判斷 date 是否可以被轉換為日期或時間。Cdate 可用來識別日期文字和時間文字,以及落入可接受的日期范圍內的數值。當轉換一個數字成為日期時,是將整數部分轉換為日期,小數部分轉換為從午夜起算的時間。
CDate 依據系統(tǒng)上的國別設置來決定日期的格式。如果提供的格式為不可識別的日期設置,則不能正確判斷年、月、日的順序。另外,長日期格式,若包含有星期的字符串,也不能被識別。
CVDate 函數也提供對早期 Visual Basic 版本的兼容性。CVDate 函數的語法與 CDate 函數是完全相同的,不過,CVDate 是返回一個 Variant,它的子類型是 Date,而不是實際的 Date 類型。因為現在已有真正的 Date 類型,所以 CVDate 也不再需要了。轉換一個表達式成為 Date,再賦值給一個 Variant,也可以達到同樣的效果。也可以使用這種技巧將其他真正的數據類型轉換為對等的 Variant 子類型。
注意 CDec 函數不能返回獨立的數據類型,而總是返回一個 Variant,它的值已經被轉換為 Decimal 子類型。
cint() 是ASP中的函數
函數將一個表達式轉化為數字類型 表達式 CInt(expression) 允許數據類型: 任何有效的字符均可 實例: <% f = "234" response.write cINT(f) 2 %> 返回結果: 236 轉化字符"234"為數字"234",如果字符串為空,則返回0值 經常見到cint和clng的溢出出錯,如果有檢測函數就不會出這個問題,下面這兩個函數是應朋友要求寫的,看一下吧
'檢測字符串是否是整數
function Is_Int(a_str) if not isnumeric(a_str) or len(str) > 5 then Is_Int = false exit function elseif len(str) < 5 then Is_Int = true exit function end if if cint(left(a_str , 4)) > 3276 then Is_Int = false exit function elseif cint(left(a_str , 4)) = 3276 and cint(right(a_str , 1)) > 7 then Is_Int = false exit function else Is_Int = true exit function end if end function '檢測是否是長整數
function Is_Lng(a_str) if not isnumeric(a_str) or len(str) > 10 then Is_Lng = false exit function elseif len(str) < 10 then Is_Lng = true exit function end if if clng(left(a_str , 9)) > 214748367 then Is_Lng = false exit function elseif clng(left(a_str , 9)) = 214748367 and clng(right(a_str , 1)) > 7 then Is_Lng = false exit function else Is_Lng = true exit function end if end function 該文章在 2011/4/19 14:49:32 編輯過 |
關鍵字查詢
相關文章
正在查詢... |