1

ここで何が間違っているのかわかりません。2 つのオプションのうちの 1 つを入力して、関連するオプションのコストを表示するプログラムがあります。

「mscorlib.dll で 'System.FormatException' 型の未処理の例外が発生しました」というエラー メッセージが表示されます

追加情報: 文字列は正確に 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
        }
    }
}

4

2 に答える 2

1

エラーが発生する理由Console.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString(D));は、ランタイム環境に日時形式に設定するように指示しているためです。に変更しますConsole.WriteLine("Cost of Deluxe Computer Package is " + DELUXE_PACKAGE.ToString());

于 2016-06-18T06:20:05.840 に答える
0

問題は、小数の ToString メソッドに起因します。リクエストできる特定のフォーマットがあります。こちらをご覧ください。

ToString(フォーマット)

于 2016-06-18T06:11:51.457 に答える