0

我在设置文件中设置十进制值时遇到了一些麻烦,当它询问我选择小数的变量类型时,默认值为 0.10,这是为了模仿 10 美分,但是当我运行我的程序和检查它显示为 0.01 的变量的值,这是因为我应该在末尾添加一个“m”,而这在设置文件中是不允许的。有一些解决方法吗?

用户也可以设置他/她自己输入到文本框中的价格,例如可以是 0.30(30 美分)我如何将文本框值转换为 0.30m?

使用双精度不是一种选择,我不想最终得到像 $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

1

使用逗号!它应该可以工作:0.1 变为 0,1。

在这里你可以看到我是如何设法插入它的:

于 2017-11-18T19:34:26.400 回答