39行目を参照して文字列をdoubleに変換できないというエラーメッセージが表示され続けます。コードを見直して、どこにいるのか教えてください。多分、25行目は変数 "R"の2倍にするべきだと思います。C#での変換問題
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Present_Value
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
//Declare global variables.
/* double F = int.Parse(futureTextBox.Text);
double R = int.Parse(interestTextBox.Text);
double N = int.Parse(sitTextBox.Text);*/
private double CalculateData(int F, int R, int N)
{
double P = F/(1 + R)*N;
return P ;
}
private void button1_Click(object sender, EventArgs e)
{
int n = int.Parse(sitTextBox.Text);
int f = int.Parse(futureTextBox.Text);
int r = double.Parse(intTextBox.Text);
presentValuelabel.Text = CalculateData(f,r,n).ToString();
}
private void Form1_Load(object sender, EventArgs e)
{
}
private void exitButton_Click(object sender, EventArgs e)
{
//Close this form.
this.Close();
}
}
}
'int'変数を宣言していますが、' double.Parse() 'メソッドで' double'を割り当てようとしています。 'double.Parse()'を 'int.Parse()'に変更してみてください。 – Stradivarius
39行目と25行目はどちらですか?あなたは[mcve]を投稿し、私たちが簡単に答えるようにするべきです。 – Enigmativity
'F /(1 + R)* N'(あなたの質問にあるように)という計算は純粋に整数の計算で計算されていることに注意してください。たとえば、 '(1 /(1 + 2)* 3)'の結果は、整数の計算を使って '0'です。しかし、私がdoubleに変更すると '(1.0 /(1.0 + 2.0)* 3.0)'が '1.0'を返します。 – Enigmativity