我正在尝试创建一个简单的计算,用户输入值“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;
}
答案 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"));