我是编程和使用基本的VB脚本编程课程的新手,这是我正在学习的学位的要求。我有这个程序,将摄氏数字转换为farhenheit并以增量和要查看的数量进行。这个程序在视觉逻辑流程图中工作得很好,我花了超过25个小时才试图让这个程序工作。我知道它必须是完全愚蠢的东西,但对编程世界来说是新手我不知所措,并且没有答案。有人可以看看这个剧本,这是非常基本的,看看是否有我遗漏的东西。在fahtemp =(9/5)* tempaccum + 32之后,错误总是出现。任何insite都会非常感激。提前谢谢您的时间。乔恩
Option Explicit
Dim celtemp, amttemp, increment
Dim newtemp, tempaccum, fahtemp, loopnum, templist
celtemp = inputbox("What is your starting Temp?")
amttemp = inputbox("How many temperatures do you want displayed?")
increment = inputbox("What temperature increments do you want?")
Do while loopnum < amttemp
loopnum = loopnum +1
If loopnum = 1 then
tempaccum = celtemp
fahtemp = (9/5) * (tempaccum) +32
templist = "1." & "Cel Temp: " &tempaccum & "- " & "Fah Temp: " &fahtemp
else
tempaccum = tempaccum + increment
fahtemp = (9/5) * tempaccum + 32
templist = templist &" " &loopnum & "." & "Cel Temp: " &tempaccum & "- " & "Fah Temp: " &fahtemp
End If
newtemp = celtemp + increment
Loop
Document.write "We are starting at Temp: " &celtemp
Document.write "<br> We are displaying " &amttemp & "times."
Document.write "<br> We are incrementing by: " &increment
Document.write "<br> The Temperature Table is as follows: " &templist
答案 0 :(得分:1)
当您尝试存储大于数据类型可以处理的值时,会发生溢出错误。
如果您的输入太大,您将遇到此错误。
答案 1 :(得分:1)
@Jon Gammon:tempaccum = tempaccum + increment
没有像你想象的那样计算,而不是像它是一个数字那样添加增量,它就像一个字符串一样连接它,即如果起始温度是{{1} },增量为{{1}},显示的次数为10
,您希望输出为
5
相反,你会得到
3
这是导致溢出的原因,因为1. Cel Temp: 10 - Fah Temp: 50
2. Cel Temp: 15 - Fah Temp: 59
3. Cel Temp: 20 - Fah Temp: 68
变得很大,并且它的进一步乘法会破坏脚本。 1. Cel Temp: 10 - Fah Temp: 50
2. Cel Temp: 105 - Fah Temp: 221
3. Cel Temp: 1055 - Fah Temp: 1931
也不是有效的VBScript代码,因此我将其转换为tempaccum
。
这是一个经过工作和测试的脚本副本,我重写了一点,以解决上述问题,并对其进行一些改进:
Document.Write
的更新强>
我的课程非常基础,我们没有使用过函数,我们唯一能做的就是输入,while循环,Case Select和If。所以我已经完全试图将其编码。虽然你的工作非常出色,但我担心它比我们现在的位置更先进。
我明白了,好吧,我已经回到了原始脚本,只更新了破坏它的部分,如前所述。 以下是新的工作副本:
MsgBox