我想知道是否有人可以帮助我,因为我已经对我认为是一个简单错误的简单原因视而不见.
我有这个代码:
doRound1(x1)
denom1 = 5
y1 = denom1 - x1 mod denom1
if y1 <> denom1 then
x1= x1+y1
end if
doRound1=x1
End function
'theCalc = 20488888888.684
theCalc = cDbl(11111111111) * 1.844
doRound1(theCalc)
Run Code Online (Sandbox Code Playgroud)
我收到这个错误
Microsoft VBScript runtime error '800a0006'
Overflow: 'x1'
Run Code Online (Sandbox Code Playgroud)
在上面的代码中由此行引起:
y1 = denom1 - x1 mod denom1
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?正如我所说,我今晚失明了
我相信,当您没有具体定义这些值时,ASP Classic 会假定数值为 int(仅为 32767)。尝试强迫你的价值观是长的
Function doRound1(x1)
x1 = CDbl(x1)
denom1 = CDbl(5)
y1 = denom1 - x1 mod denom1
if y1 <> denom1 then
x1= x1+y1
end if
doRound1=x1
End function
Run Code Online (Sandbox Code Playgroud)
注意:我还没有实际测试过这个。