asp cint clng的范围与防止cint和clng的溢出解决方法大全

首先我们需要了解的是

cint范围 -32,768 到 32,767。
clng范围 -2,147,483,648 到 2,147,483,647。

cint与clng含义:

都可以强制将一个表达式转换成数据类型

cint与clng处理数据的范围:

CInt Integer -32,768 至 32,767,小数部分四舍五入。
CLng Long -2,147,483,648 至 2,147,483,647,小数部分四舍五入。

所谓溢出指的是超出处理数据的范围,下面代码是处理数据防止溢出的代码,大家可以自己看看:

'检测是否是短整数
复制代码 代码如下:
sub Is_Int(string)
if len(abs(string))>10 then response.write "数据溢出":response.end
if instr(string,"-")<1 then
if cint(left(string,4))>3276 and cint(right(string,1))>7 then response.write "数据溢出":response.end
else
if cint(left(abs(string),4))>3276 and cint(right(string,1))>8 then response.write "数据溢出":response.end
end if
end sub

'检测是否是长整数
复制代码 代码如下:
sub Is_Lng(string)
if len(abs(string))>10 then response.write "数据溢出":response.end
if instr(string,"-")<1 then
if clng(left(string,9))>214748364 and clng(right(string,1))>7 then response.write "数据溢出":response.end
else
if clng(left(abs(string),9))>21478364 and clng(right(string,1))>8 then response.write "数据溢出":response.end
end if
end sub

以下是一些检验函数,需要的朋友可以参考下:

第一种:
一、检测它是不是整数 
复制代码 代码如下:
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

如果我们只需要是数子,其它的东西,都可以替换为空,下面这个是脚本之家站长写的一个正则,替换非数字的正则
复制代码 代码如下:
function replacestr(str)
dim re
set re=new regexp
re.ignorecase=true
re.global=true
re.pattern="\D"
str=re.replace(str,"")
replacestr=str
set re=nothing
end function

下面是上面的调用方法
复制代码 代码如下:
id=replacestr(id)
if len(id)>5 then id=left(id,5)
if id<>"" then id=clng(id)
if err.number<>0 Or id="0" then response.redirect "http://www.jb51.net"
dim rs
set rs=conn.execute("select id from news where id="&id&"")

时间: 2024-10-26 01:23:07

asp cint clng的范围与防止cint和clng的溢出解决方法大全的相关文章

asp cint clng的范围与防止cint和clng的溢出解决方法大全_应用技巧

首先我们需要了解的是 cint范围 -32,768 到 32,767. clng范围 -2,147,483,648 到 2,147,483,647. cint与clng含义: 都可以强制将一个表达式转换成数据类型 cint与clng处理数据的范围: CInt Integer -32,768 至 32,767,小数部分四舍五入. CLng Long -2,147,483,648 至 2,147,483,647,小数部分四舍五入. 所谓溢出指的是超出处理数据的范围,下面代码是处理数据防止溢出的代码,

asp.net下无法循环绑定投票的标题和选项的解决方法

问题:1,无法循环绑定投票的标题和选项 解决方法: 在Repeater绑定中添加ItemDataBound事件,选项用RadioButtonList绑定,附源代码: Default页,源页面 复制代码 代码如下: <div> 广大网友对保障房建设相关问题调查<br /> <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemData

在Windows2003中ASP出现(错误“不允许的父路径 ”)问题的解决方法

window|windows2003|错误|解决|问题 配置好IIS6.0,然后也成功导入SQL2000的数据库,输入地址访问Index.asp页面之后出现如下出错信息: Active Server Pages 错误 'ASP 0131' 不允许的父路径 /xxx/xxx/index.asp,行 1 解决方法如下: 1.运行Internet信息服务管理器 2.选择你当前所在站点 3.从站点"属性"中选择"虚拟目录",再进入"配置",最后进入&qu

ASP.NET MVC中解析淘宝网页出现乱码问题的解决方法_实用技巧

最近在解析淘宝中商品的信息,结果出现乱码,如: 原因就是中文字符格式出现冲突,ASP.NET MVC 默认采用utf-8,但是淘宝网页采用gbk. 在网上找了一下,最常用的解决方法就是修改web.config: < system.web> ...... < globalization requestEncoding="gbk" responseEncoding="gbk" culture="zh-CN" fileEncoding

IIS 运行ASP文件500内部错误解决方法大全_win服务器

1 IIS服务器出现500错误   2错误原因:500错误的原因一般是源程序出现错误造成的. 3 解决办法:1 首先设置IE浏览器à工具->Internet选项   2 刷新或者重新打开500错误页面就会出现错误的程序部分   3 根据错误提示,然后解决问题.     4 ADODB.Connection 创建失败的可能解决方法: 1.重装MDAC2.8. MDAC 2.8下载地址: http://www.microsoft.com/downloads/details.aspx?displayl

Asp.net中的GridView导出遇到的两个问题和解决方法_实用技巧

对于GridView导出的内容的代码大致如下: Response.Clear(); Response.Buffer = true; Response.Charset = "GB2312"; Response.AppendHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls"); Response.ContentEncoding = Sys

asp.net下无法循环绑定投票的标题和选项的解决方法_实用技巧

问题:1,无法循环绑定投票的标题和选项 解决方法: 在Repeater绑定中添加ItemDataBound事件,选项用RadioButtonList绑定,附源代码: Default页,源页面 复制代码 代码如下: <div> 广大网友对保障房建设相关问题调查<br /> <asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemData

ASP.NET对路径&amp;quot;xxxxx&amp;quot;的访问被拒绝的解决方法小结_实用技巧

在windows 2003下,在运行web应用程序的时候出现一下错误: 服务器无法处理请求,-->对路径"C:/temp/mytest.txt"的访问拒绝 说明: 执行当前 Web 请求期间,出现未处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.UnauthorizedAccessException: 对路径"D:/temp1/MyTest.txt"的访问被拒绝. 解决方案一 在需要进行读写操

IIS6 ASP 页的执行造成响应缓冲区超过其配置限制的解决方法_win服务器

Response 对象 错误 'ASP 0251 : 80004005' 超过响应缓冲区限制 此 ASP 页的执行造成响应缓冲区超过其配置限制. 因为页面中数据较多,有上千条,导致出现"超过响应缓冲区限制.此 ASP 页的执行造成响应缓冲区超过其配置限制". 如果 response.buffer=false这样设的话,可以查出,但是好慢.怎么解决? 我们可以加大Buffer的缓冲区,办法是:先在服务里关闭iisadminservice服务. 找到 windows\system32\in