1. ホーム
  2. vb.net

[解決済み] "文字列 "" から型 'Double' への変換は無効です。" VBでは

2022-02-11 04:42:01

質問

支払額と利息の合計を計算するプログラムを実行しようとすると、「"文字列 " から 'Double' 型への変換は有効ではありません」と表示されます。

何が間違っているのでしょうか?

Dim P As Double
Dim R As Double
Dim N As Double
Dim Payment As Double
Dim totalInterest As Double

Private Sub btnAnalyze_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnalyze.Click

P = CDbl(txtAmount.Text)
N = CDbl(txtDuration.Text)
R = CDbl(txtInterestRate.Text)

Payment = (P * R) / (1 - (1 + R) ^ (-N))
totalInterest = (N * Payment) - P

Payment = CDbl(txtPayment.Text)
totalInterest = CDbl(txtInterest.Text)

If P < 0 Then
MessageBox.Show("Please enter in loan amount")

End If

If R <= 0 Then
MessageBox.Show("Please enter in loan amount")

End If

If N <= 0 Then
MessageBox.Show("Please enter in loan amount")

End If


End Sub
End Class

解決方法は?

あなたの TextBox の項目が未入力です。

そのため CDbl というように P = CDbl(txtAmount.Text) の場合、その TextBox が空の場合、このエラーが発生します。

より良い選択肢は Double.TryParse の代わりに CDbl というメッセージを表示させることができます。

Private Sub btnAnalyze_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAnalyze.Click

If Not Double.TryParse(txtAmount.Text, P) Then
     MessageBox.Show("Please correct the loan amount")
     Exit Sub
End If

' Do the same for all other CDbl checks