0

設定ファイルで小数値を設定するのに問題があります。変数のタイプを尋ねられたときに、小数値を選択しています。デフォルト値は 0.10 です。これは 10 セントを模倣するためですが、プログラムを実行すると、 0.01 として表示されている変数の値を確認してください。これは、最後に「m」を追加する必要があり、設定ファイルでは許可されていないためです。これに対する回避策はありますか?

また、ユーザーは、テキスト ボックスに入力された自分の価格を設定することもできます。たとえば、これは 0.30 (30 セント) になる可能性があります。テキスト ボックスの値を 0.30m に変換するにはどうすればよいですか?

double を使用することはオプションではありません。$2.99999999 のようなものにはなりたくありません。ハードコードできるように設定ファイルで使用できれば完璧です。

返信ありがとうございます。

public void beginUser(int tblSize)
    {

        decimal tblPrice = 0.00m;
        int minCount = 0;
        decimal curCost = 0.00m;
        string timeStarted = string.Format("{0:HH:mm:ss tt}", DateTime.Now);

        //Setup table price
        switch (tblSize)
        {
            case 0:
                tblPrice = Properties.Settings.Default.tblSmallPrice;
                //tblPrice = 0.10m //this works
                break;
            case 1:
                tblPrice = Properties.Settings.Default.tblBigPrice;
                //tblPrice = 0.15m // this works
                break;
            default:
                tblPrice = 0.10m;
                break;
        }

        //Check how tblPrice appears.
        MessageBox.Show(Convert.ToString(tblPrice));

        try
        {
            while (true)
            {

                Thread.Sleep(100);
                curCost += tblPrice;
                minCount += 1;
                if (minCount == 60) { Thread.CurrentThread.Abort(); }
            }
        }
        catch (ThreadAbortException)
        {
            TimeSpan span = TimeSpan.FromMinutes(minCount);

            string output = String.Format("Cost: €{0}\r\ncurCost: {1} hour(s) {2} minutes\r\nStarted: {3}", curCost, span.Hours, span.Minutes, timeStarted);
            MessageBox.Show(output);
        }


}
4

1 に答える 1