5

単純なエラーの単純な原因であると信じていることがわからなくなったので、誰かが私を助けることができるかどうか疑問に思っていました.

私はこのコードを持っています:

 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)

このエラーが発生します

Microsoft VBScript runtime  error '800a0006'
Overflow: 'x1'

上記のコードの次の行が原因です。

 y1 = denom1 - x1 mod denom1

何か案は?私が言ったように、私は今午後失明しました

4

2 に答える 2

1

値を具体的に定義しない場合、ASP Classic は数値を int (32767 のみ) と見なすと思います。値を long に強制してみてください

 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

:私は実際にこれをテストしていません。

于 2009-09-16T14:45:26.773 に答える