C#,输入字符串格式不正确,十进制值

时间:2017-01-08 23:04:31

标签: c#

我正在尝试创建一个简单的计算,用户输入值“kWh”并输出“ChargeAmount”

但是,我在将ChargeAmount转换为十进制值时遇到问题,我收到错误“输入字符串格式不正确”。我可以在调试器中手动更改ChargeAmount的值,然后继续执行程序,这将正确输出ChargeAmount。所以我认为错误与十进制转换有关。

代码中有什么东西我做错了吗?

谢谢!

private decimal CCustMethod()
    {
        decimal kWh = Convert.ToDecimal(txtkWh.Text);
        decimal ChargeAmount = Convert.ToDecimal(txtChargeAmount.Text);
        if (radCommercial.Checked) //User checks on Commercial
        {
            if (kWh < 1000m) //Calculation for first 1000 kWh used 
            {
                ChargeAmount = 60.0m;
            }

            else//Calculation when over 1000 kWh usage 
            {
                ChargeAmount = (kWh - 1000) * 0.045m + 60.0m;
            }

        }
        txtChargeAmount.Text = string.Format("{0:C2}", ChargeAmount); //Convert Flat Rate into format
        return ChargeAmount;
    }

1 个答案:

答案 0 :(得分:0)

您可以尝试这样的事情:

System.Globalization.CultureInfo customCulture = (System.Globalization.CultureInfo)System.Threading.Thread.CurrentThread.CurrentCulture.Clone();
customCulture.NumberFormat.NumberDecimalSeparator = ".";

System.Threading.Thread.CurrentThread.CurrentCulture = customCulture;

或类似的东西:

using System.Globalization;
CultureInfo culture = new CultureInfo("en-US");
Convert.ToDecimal(value, culture);

所以在你的情况下它可能只是:

decimal ChargeAmount = Convert.ToDecimal(txtChargeAmount.Text,new CultureInfo("en-US"));