ASP.NET数据类型转换浅析
创始人
2024-04-24 22:00:31
0

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数据类型转换有所了解。

【编辑推荐】

  1. ASP.NET数据访问层SqlHelperSqlHelper的使用
  2. 哈希算法实现ASP.NET数据加密
  3. 对称加密算法实现ASP.NET数据加密
  4. ASP.NET数据导入之实现Excel to MSSQL
  5. ASP.NET数据集使用示例详细图解

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...