Vbscript 当值超过100000+;

Vbscript 当值超过100000+;,vbscript,Vbscript,我是一个全新的编程新手,在Cint溢出错误方面遇到了一些麻烦。每当该值达到100000+时,就会出现Cint溢出错误。这是我在编程入门课上的一次练习。据我所知,我准确地编码了它在实践中的实现方式,但实践表明使用的值高达300000。有人能解释一下我可能做错了什么吗 <script language="VBscript"> Option Explicit DIM numberofshifts, totalshift1, totalshift2, _ totalshift3, gra

我是一个全新的编程新手,在Cint溢出错误方面遇到了一些麻烦。每当该值达到100000+时,就会出现Cint溢出错误。这是我在编程入门课上的一次练习。据我所知,我准确地编码了它在实践中的实现方式,但实践表明使用的值高达300000。有人能解释一下我可能做错了什么吗

<script language="VBscript">
Option Explicit
DIM numberofshifts, totalshift1, totalshift2, _
  totalshift3, grandtotal, shiftaverage
numberofshifts=3
totalshift1 = Inputbox("How many widgets during the first shift")
totalshift2 = Inputbox("How many widgets during the second shift")
totalshift3 = Inputbox("How many widgets during the third shift")
grandtotal = cint(totalshift1) + totalshift2 + totalshift3
shiftaverage = grandtotal / numberofshifts
Document.write "The Total of the Three Shifts is " & grandtotal
Document.write "<br>The Average of the Three Shifts is " & shiftaverage
</script>

选项显式
变暗档数、总换档1、总换档2、_
总移位3、总移位、总移位平均
班次数=3
totalshift1=Inputbox(“第一次轮班期间有多少个小部件”)
totalshift2=Inputbox(“第二次轮班期间有多少个小部件”)
totalshift3=Inputbox(“第三次轮班期间有多少个小部件”)
grandtotal=cint(totalshift1)+totalshift2+totalshift3
shiftaverage=总班次/班次数
Document.write“三个班次的总数为”&grandtotal
Document.write“
三个班次的平均值为”&shiftaverage
CInt
可以处理-32768和32767之间的数据

使用
CLng
代替
CInt


可以使用CInt()CLng()或CDbl()将字符串数据转换为整数。 记住这些数据类型的大小限制很重要。不同的编程语言有不同的限制。

整数可以处理从-32768到32767的整数。 Long可以处理从-2147483648到2147483647的整数。 double可以处理高达1.79769313486232E+308的数字(这个数字比太阳中的原子数大,即1.19个十进制数)。它们也是双浮点精度;也就是说,双精度浮点也可以处理非常精确的小数点

grandtotal = cdbl(totalshift1) + totalshift2 + totalshift3 

这将消除溢出问题。如果用户输入非数字,它不会处理错误,但这是另一个主题。

供参考:这不提供问题的答案。要评论或要求作者澄清,请在他们的帖子下方留下评论-你可以随时对自己的帖子发表评论,一旦你有足够的评论,你就可以发表评论。这完全回答了问题。我写了一个脚本,其中包括在我们的内部网中爬行并计算域机器上的RAM。我的第一次尝试是辛特。这导致了溢出。然后我从罗密欧那里找到了这个答案,试着用CLng。这也立即溢出。long的下一个数据步是double,所以我尝试了CDbl,它工作了。这是一个比给出的答案更好的答案,所以你对我答案的评价是错误的。谢谢你的帮助。虽然这里对实际问题有一个含蓄的答案,但仅此而已——含蓄。这反过来意味着你必须从字里行间读出答案。一种更好的措辞方式是明确指出问题所在,以及为什么会有问题,第一个答案就是这样(尽管我也喜欢您添加了对
CDbl()
的引用)