我有一个在Visual Basic中要做的项目。 我的问题是结果总是错误的(例如,而不是2011年给出的2000)。并且我无法将英寸(1)或英尺(3)设置为所需单位,它会产生无穷大错误。如果我把原始和期望单位放在英寸(1),结果是“不是数字”。
这是我到目前为止所做的代码。该项目是关于数组。任何帮助表示赞赏。
Public Class Form1
Private Sub btnConvert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConvert.Click Dim original(9) As Long Dim desired(9) As Long Dim a As Integer Dim o As Integer Dim d As Integer Dim inch As Long, fathom As Long, furlong As Long, kilometer As Long Dim meter As Long, miles As Long, rod As Long, yard As Long, feet As Long a = Val(Input3.Text) o = Val(Input1.Text) d = Val(Input2.Text) inch& = 0.0833 rod& = 16.5 yard& = 3 furlong& = 660 meter& = 3.28155 kilometer& = 3281.5 fathom& = 6 miles& = 5280 original(1) = inch original(2) = fathom original(3) = feet original(4) = furlong original(5) = kilometer original(6) = meter original(7) = miles original(8) = rod original(9) = yard desired(1) = inch desired(2) = fathom desired(3) = feet desired(4) = furlong desired(5) = kilometer desired(6) = meter desired(7) = miles desired(8) = rod desired(9) = yard If o < 1 Or o > 9 Or d < 1 Or d > 9 Then MessageBox.Show("Units must range from 1-9.", "Error", _ MessageBoxButtons.OK, _ MessageBoxIcon.Information) Return End If Output.Text = (a * original(o)) / desired(d) End Sub
结束班
答案 0 :(得分:1)
Geia sou Manoli,
通常数组基于零。 还应将英寸,米等声明为双倍,不长。
此代码将进行核心转换
Private Sub btnConvert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnConvert.Click
Dim original(8) As Double
Dim desired(8) As Double
Dim a As Integer
Dim o As Integer
Dim d As Integer
Dim inch As Double, fathom As Long, furlong As Double, kilometer As Double
Dim meter As Double, miles As Long, rod As Double, yard As Double, feet As Long
a = CInt(Val(Input3.Text))
o = CInt(Val(Input1.Text))
d = CInt(Val(Input2.Text))
inch = 0.0833333333
rod = 16.5
yard = 3
furlong = 660
meter = 3.2808399
kilometer = 3280.8399
fathom = 6
miles = 5280
original(0) = inch
original(1) = fathom
original(2) = feet
original(3) = furlong
original(4) = kilometer
original(5) = meter
original(6) = miles
original(7) = rod
original(8) = yard
desired(0) = inch
desired(1) = fathom
desired(2) = feet
desired(3) = furlong
desired(4) = kilometer
desired(5) = meter
desired(6) = miles
desired(7) = rod
desired(8) = yard
If o < 0 Or o > 8 Or d < 0 Or d > 8 Then
MessageBox.Show("Units must range from 0-8.", "Error", _
MessageBoxButtons.OK, _
MessageBoxIcon.Information)
Return
End If
Output.Text = CStr((a * original(o)) / desired(d))
End Sub
答案 1 :(得分:0)
感谢您的回复!
现在它完美无缺。
我正要问另一个问题,但我想出来了。
Output.Text = CStr((a * original(o))/ desired(d))
必须转换为
Output.Text = CStr((a * original(o - 1))/ desired(d - 1))
Euxaristw!