ASP.NET数据类型转换浅析


  本文标签:ASP.NET数据类型转换

  ASP.NET数据类型转换是如何实现的呢?让我们首先来看看所涉及的函数:

  每个函数都可以强制将一个表达式转换成某种特定数据类型  。

  ASP.NET数据类型转换语法

  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 参数可以是任何字符串表达式或数值表达式  。

  ASP.NET数据类型转换返回类型

  函数名称决定返回类型,如下所示:

  ASP.NET数据类型转换函数返回类型 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 相同  。

  ASP.NET数据类型转换说明

  如果传递给函数的 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 子类型  。

  cint()   是ASP中的函数

  函数将一个表达式转化为数字类型

  ASP.NET数据类型转换表达式 CInt(expression)

  允许数据类型: 任何有效的字符均可

  ASP.NET数据类型转换实例:

  1. ﹤%  
  2. f = "234" 
  3. response.write cINT(f) + 2  
  4. %﹥ 

  返回结果: 236

  转化字符"234"为数字"234",如果字符串为空,则返回0值

  经常见到cint和clng的溢出出错,如果有检测函数就不会出这个问题,下面这两个函数是应朋友要求写的,看一下吧

  1. 检测字符串是否是整数   
  2. function Is_Int(a_str)   
  3.   if not isnumeric(a_str) or len(str) ﹥ 5 then   
  4.  Is_Int = false   
  5.  exit function   
  6.   elseif len(str) ﹤ 5 then   
  7.  Is_Int = true   
  8.  exit function   
  9.   end if    
  10.   if cint(left(a_str , 4)) ﹥ 3276 then   
  11.  Is_Int = false   
  12.  exit function   
  13.   elseif cint(left(a_str , 4)) = 3276 and cint(right(a_str , 1)) ﹥ 7 then   
  14.  Is_Int = false   
  15.  exit function   
  16.   else   
  17.  Is_Int = true   
  18.  exit function   
  19.   end if    
  20. end function   
  21.  
  22. 检测是否是长整数   
  23. function Is_Lng(a_str)   
  24.   if not isnumeric(a_str) or len(str) ﹥ 10 then   
  25.  Is_Lng = false   
  26.  exit function   
  27.   elseif len(str) ﹤ 10 then   
  28.  Is_Lng = true   
  29.  exit function   
  30.   end if    
  31.   if clng(left(a_str , 9)) ﹥ 214748367 then   
  32.  Is_Lng = false   
  33.  exit function   
  34.   elseif clng(left(a_str , 9)) = 214748367 and clng(right(a_str , 1)) ﹥ 7 then   
  35.  Is_Lng = false   
  36.  exit function   
  37.   else   
  38.  Is_Lng = true   
  39.  exit function   
  40.   end if    
  41. end function 

  ASP.NET数据类型转换的相关信息就向你介绍到这里,希望你对ASP.NET数据类型转换有所了解  。