如何在vb.net编码中正确显示年份?
我是使用visual basic的初学者,在应用程序中正确显示年份时遇到问题。我的应用程序应该显示费率:3%-7%,然后在每个费率下年份应该显示:1-5,余额应该显示每年的总额。我得到的是3%的利率,1-5年,每年结余。第六年的利率为4%,而不是第六年的1-5和余额。5%的利率显示第7年和该年的余额,依此类推。 仅供参考:我需要保留For…Next语句,并将Do…Loop语句合并为“年” 为了更好地理解我要解释的内容,我插入了一些图片。我非常感谢你的帮助 代码如下:如何在vb.net编码中正确显示年份?,vb.net,loops,Vb.net,Loops,我是使用visual basic的初学者,在应用程序中正确显示年份时遇到问题。我的应用程序应该显示费率:3%-7%,然后在每个费率下年份应该显示:1-5,余额应该显示每年的总额。我得到的是3%的利率,1-5年,每年结余。第六年的利率为4%,而不是第六年的1-5和余额。5%的利率显示第7年和该年的余额,依此类推。 仅供参考:我需要保留For…Next语句,并将Do…Loop语句合并为“年” 为了更好地理解我要解释的内容,我插入了一些图片。我非常感谢你的帮助 代码如下: Dim dblDe
Dim dblDeposit As Double
Dim dblBalance As Double
Dim intYear As Integer = 1
Double.TryParse(txtDeposit.Text, dblDeposit)
txtBalance.Text = "Rate" & ControlChars.Tab &
"Year" & ControlChars.Tab & "Balance" &
ControlChars.NewLine
' Calculate and display account balances.
For dblRate As Double = 0.03 To 0.07 Step 0.01
txtBalance.Text = txtBalance.Text &
dblRate.ToString("P0") & ControlChars.NewLine
Do
dblBalance = dblDeposit * (1 + dblRate) ^ intYear
txtBalance.Text = txtBalance.Text &
ControlChars.Tab & intYear.ToString &
ControlChars.Tab & dblBalance.ToString("C2") &
ControlChars.NewLine
intYear = intYear + 1
Loop While intYear < 6
Next dblRate
Dim dbldeposite为双精度
双精度DBL天平
整数形式的年份=1
Double.TryParse(txtDeposit.Text,dblDeposit)
txtBalance.Text=“Rate”&ControlChars.Tab&
“年”&控制字符选项卡和“余额”&
控制字符新行
'计算并显示帐户余额。
对于dblRate为双精度=0.03至0.07步骤0.01
Text=txtBalance.Text&
dblRate.ToString(“P0”)和ControlChars.NewLine
做
dblBalance=dblDeposit*(1+dblRate)^intYear
Text=txtBalance.Text&
ControlChars.Tab和intYear.ToString&
ControlChars.Tab和dblBalance.ToString(“C2”)&
控制字符新行
intYear=intYear+1
年<6时循环
下一个dblRate
您需要在每次迭代Do
循环之前重置intYear
Dim dblDeposit As Double
Dim dblBalance As Double
Dim intYear As Integer = 1
Double.TryParse(txtDeposit.Text, dblDeposit)
txtBalance.Text = "Rate" & ControlChars.Tab &
"Year" & ControlChars.Tab & "Balance" &
ControlChars.NewLine
' Calculate and display account balances.
For dblRate As Double = 0.03 To 0.07 Step 0.01
txtBalance.Text = txtBalance.Text &
dblRate.ToString("P0") & ControlChars.NewLine
intYear = 1 ' Reset intYear here before each loop
Do
dblBalance = dblDeposit * (1 + dblRate) ^ intYear
txtBalance.Text = txtBalance.Text &
ControlChars.Tab & intYear.ToString &
ControlChars.Tab & dblBalance.ToString("C2") &
ControlChars.NewLine
intYear = intYear + 1
Loop While intYear < 6
Next dblRate
Dim depositAmount As Decimal
If Not Decimal.TryParse( txtDeposit.Text, NumberStyles.Currency, CultureInfo.CurrentCulture, depositAmount ) Then
MsgBox( "Invalid input" ).
Exit Sub
End If
Dim sb As New StringBuilder()
sb.Append( "Rate Year Balance" ).AppendLine() ' Tab characters are embedded in the string literal.
' Calculate and display account balances.
For rate As Double = 0.03 To 0.07 Step 0.01
sb.AppendFormat( " {0:P0}", rate ).AppendLine();
Dim year As Integer = 1 ' Reset intYear here before each loop
Do
Dim balance As Decimal = depositAmount * ( 1 + rate ) ^ year ' I think you should add extra parenthesis to make it clear which value the `^ year` is being applied to.
sb.AppendFormat( " {0:D} {1:C2}", year, balance ).ToString()
year = year + 1
Loop While year < 6
Next rate
txtBalance.Text = sb.ToString()