0

4時間以上試していますが、私は専門家ではありません。これについては間違いなく助けが必要です. 何がうまくいかないのですか?

    // Declare variables 
    int inches = 0;
    double centimetres = 0;
    string input;

    //Ask for input
    Console.Write("Enter Number of centimetres to be converted: ");
    input = Console.ReadLine();

    //Convert string to int
    centimetres = double.Parse(input);

    inches = int.Parse(input);

    inches = int.Parse(centimetres / 2.54);

    //Output result
    Console.WriteLine("Inches = " + inches + "inches.");
}

}

4

3 に答える 3

1

「変換」inches = int.Parse(centimetres / 2.54);には意味がありません。は、数値を表す aint.Parseを に変換するために使用されます。しかし、あなたはそれを渡します。stringintdouble

機能させるには、コードを次のようにする必要があります。

//Ask for input
Console.Write("Enter Number of centimetres to be converted: ");
double input = Console.ReadLine();

//Convert string to int
double centimetres = double.Parse(input);

double inches = centimetres / 2.54;

//Output result
Console.WriteLine("Inches = " + inches + "inches.");

いくつかのポイント:

  1. メソッドの先頭ではなく、使用時に変数を宣言します。これは、最初に変数を定義する必要があった古い言語からの遺物です。
  2. inches = int.Parse(input);結果は次の行で上書きされるため、使用されないため、を完全に削除します。
  3. inchesas doublenot as と宣言しintます。そうしないと、分数インチを使用できなくなります。
  4. 除算の結果を に代入するだけinchesです。ここで解析する必要はありません。
于 2013-09-30T03:02:23.163 に答える
1

問題は次の行に最も似ています: インチ = int.Parse(センチメートル / 2.54);

int.Parse は文字列を受け取り、センチメートル / 2.54 は double です。double を int に変換するには、代わりに Convert.ToInt32 を使用します。

于 2013-09-30T03:05:02.197 に答える
0

の結果は double です。int.Parsecentimetres / 2.54のパラメーターとして double を受け入れるオーバーロードはありません。

于 2013-09-30T03:04:33.197 に答える