2016-06-18 19 views
1

ここで間違っていることがわかりません。私は、2つのオプションのうちの1つを入力して、関連するオプションのコストを表示するプログラムを持っています。C# 'System.FormatException'の未処理の例外がmscorlib.dllで発生しました

私は、エラーメッセージ取得しています「タイプ 『にSystem.FormatException』の未処理の例外がmscorlib.dll

で発生しました追加情報:文字列が正確に1文字の長さでなければなりません。」

私のコードで何が間違っていますか?以下を参照してください:

using System; 
 
using System.Collections.Generic; 
 
using System.IO; 
 
using System.Linq; 
 
using System.Text; 
 

 

 
namespace computerPackage 
 
{ 
 
    class Program 
 
    { 
 
     static void Main(string[] args) 
 
     { 
 
      char computerPackage; 
 
      const decimal DELUXE_PACKAGE = 1500; 
 
      const decimal SUPER_PACKAGE = 1700; 
 
      Console.Write("Input the Computer Package D or S: "); 
 
      computerPackage = char.Parse(Console.ReadLine()); 
 
      computerPackage = Char.ToUpper(computerPackage); 
 
      if (computerPackage == 'D') 
 
      { 
 
       Console.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString("D")); 
 
      } 
 
      else if (computerPackage == 'S') 
 
      { 
 
       Console.WriteLine("Cost of Deluxe Computer Package is " + 
 
       SUPER_PACKAGE.ToString("S")); 
 
      } 
 
      else 
 
      { 
 
       Console.WriteLine("Package D or S not entered"); 
 
      } 
 
      Console.WriteLine("Press any key to continue..."); 
 
      Console.ReadKey();   // pause 
 
     } 
 
    } 
 
}

+0

あなたの入力(Console.Readline())を正確に1文字確認してみてください。あなたのchar.Parseメソッドがあまりにも多くの入力を取得しているようです。 – Dominik

答えて

1

ブロエラーがConsole.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString(D));である理由は、日時書式に設定するランタイム環境を語っている:あなたがここでそれらを見て、要求することができ、特定の形式があります。 Console.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString());

+0

絶対的なチャンピオン、ありがとう! – purplemonkeydishwasher

+0

probsはありません。 .tostring()パラメータは空のままにしておくことを忘れないでください。ほとんどの場合、常に空です。必要な時にのみ。 –

+0

よかった、ありがとう。これは私が別の問題を抱えている別の問題のために便利になるかもしれません! – purplemonkeydishwasher

0

問題は小数であなたのtoStringメソッドから来ています。

ToString(Format)

+0

おかげで、ちょっと混乱しちゃって、ちょっと混乱しちゃったけど、何を変えたらいいかわからない。 – purplemonkeydishwasher

+0

申し訳ありませんが、これは間違っていますか? tostringのformatexceptionは "追加情報"としてa.k.a.条件 "format is invalid"を追加します。これはopにはありません。 opsの問題はchar.parse(...)にあります。 – Dominik

+0

@Dominik - 私が修正する必要があるすべての提案? – purplemonkeydishwasher

関連する問題