ASP中提示cint溢出错误,这个函数的最大值是多少?
|
admin
2026年10月31日 9:44
本文热度 150
|
:ASP中提示cint溢出错误,这个函数的最大值是多少?

ASP(VBScript) CInt
✅ 最大值:32767
✅ 最小值:-32768
超过就报:Microsoft VBScript runtime error '800a0006' Overflow: 'CInt'
替换方案
' 原来报错
n = CInt("40000")
' 修改后
n = CLng("40000")
下面是一个封装了Cint函数的函数:
Function SafeCInt(tempValue)
SafeCInt = 0
If Not IsNumeric(tempValue) Then Exit Function
Dim tempNum
tempNum = CDbl(tempValue)
If tempNum > 0 And tempNum <= 32767 And tempNum = Int(tempNum) Then SafeCInt = CInt(tempNum)
End Function
上面函数对不符合要求的数字,包括:大小不符、有小数位等,一律强制等于0。
使用示例:
' 使用示例
Dim a
a = SafeCInt(Request.QueryString("id"))
容易踩坑提醒
不要直接 CInt(Request("xxx")),用户传 40000 直接溢出报错;
不要用 CInt(CLng(v)) 绕,CLng 大数再丢给 CInt 照样溢出;
如果你的业务本身数值就可能超过 32767:直接放弃 CInt,全程 CLng,不要强行约束到 CInt 范围。
该文章在 2026/10/31 9:45:33 编辑过