【发布时间】:2017-01-08 23:04:31
【问题描述】:
我正在尝试创建一个简单的计算,用户输入一个值“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;
}
【问题讨论】:
-
您在 txtkWh 框中输入了什么?关于这一点有成千上万的问题,所有这些都归结为一个简单的事实。根据操作系统的本地化规则,您提供的输入不能转换为小数(或整数、浮点数、日期时间等...)
-
我输入任何十进制值,以“5.6”为例
-
如果您居住的国家/地区使用不同的东西作为数字的整数和小数部分之间的分隔符,则它不能转换为小数
-
非常感谢!是 $ 导致该值无法转换
标签: c#