【发布时间】:2016-10-12 11:21:02
【问题描述】:
我的教授要求我们使用子程序创建一个抵押贷款计算器。我能够在不使用 sub 或 ByVal / ByRef 的情况下通过一键单击功能完成这项任务。但是,当我将它分成几个不同的函数和子函数时,我有 0 个错误但是当我点击按钮并计算时,3 个显示输出全部为 0。我假设它在我的 Function calc 块或我的btnCalculate_Click Sub。
Public Class frmMortgage
Dim annualRateOfInterest, monthlyPayment, begBalance As Double 'Declaring variables
Dim intForMonth, redOfPrincipal, endBalance As Double
Private Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.Click
Call getInput(annualRateOfInterest, monthlyPayment, begBalance)
Call displayOutput(intForMonth, redOfPrincipal, endBalance)
End Sub
Sub getInput(ByVal annualRateOfInterests As Double, ByVal monthlyPayment As Double, ByVal begBalance As Double) 'Values input into txt boxes
annualRateOfInterest = CDbl(txtInterest.Text) / 100 'Change number entered into a percentage
monthlyPayment = CDbl(txtPayment.Text)
begBalance = CDbl(txtBalance.Text)
End Sub
Function calc(ByVal annualRateOfInterest As Double, ByVal monthlyPayment As Double, ByVal begBalanceintForMonth As Double, ByVal redOfPrincipal As Double, ByVal endBalance As Double)
Return intForMonth = (annualRateOfInterest / 12) * begBalance 'Take percentage divided by 12 times beginning balance
Return redOfPrincipal = monthlyPayment - intForMonth
Return endBalance = begBalance - redOfPrincipal
End Function
Sub displayOutput(ByRef intForMonth As Double, ByRef redOfPrincipal As Double, ByRef endBalance As Double)
mtbMonth.Text = CDbl(intForMonth) 'Display the calculated data into correct textboxes.
mtbROP.Text = CDbl(redOfPrincipal)
mtbEndBalance.Text = CDbl(endBalance)
End Sub
End Class
【问题讨论】:
-
您根本没有使用
calc函数。另一个是,使用Call有点多余。你可以在没有它的情况下调用你的函数/子。 -
如何将它添加到我的点击子中?当我尝试调用或引用它时,我得到错误并且程序不会运行。
-
一个函数应该只返回一个值。注意你的代码。您返回 3,在这种情况下,它只会返回
intForMonth,这是它看到的第一个返回值。你得到的错误是什么? -
我试过调用 calc(intForMonth, redOfPrincipal, endBalance) 错误是 BC30455 Argument not specified for parameter。
-
我应该将函数 calc 中的 3 个返回值拆分为 3 个单独的函数吗?并在我的点击子中分别调用每个?
标签: vb.net