所以我有一个问题,我的乘法将与完整数字完美配合,但是当我尝试使用十进制数字时,它会发出错误并发出错误日志:
输入字符串的格式不正确。
描述:执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详细信息:System.FormatException:输入字符串的格式不正确。
来源错误:
Line 15: protected void Button1_Click(object sender, EventArgs e)
Line 16: {
Line 17: int p = Convert.ToInt32(HourlyWage.Text);
Line 18: int q = Convert.ToInt32(HoursPerWeek.Text);
Line 19: int t = p * q;
这也是我乘以数据的实际方法,任何帮助都将受到赞赏
答案 0 :(得分:4)
如果您输入decimal
号码,则应使用该类型而不是int
。使用Convert.ToDecimal
,decimal.Parse
或更安全的选项decimal.TryParse
获取如下数字:
decimal hourlyWage;
if(decimal.TryParse(HourlyWage.Text, out hourlyWage))
{
//valid decimal number
}
else
{
//invalid input
}
对HoursPerWeek
执行相同操作,然后将乘法结果存储在decimal
类型变量中。
答案 1 :(得分:2)
您无法将带小数的数字解析为int
。请尝试使用decimal
:
protected void Button1_Click(object sender, EventArgs e)
{
decimal p = Convert.ToDecimal(HourlyWage.Text);
decimal q = Convert.ToDecimal(HoursPerWeek.Text);
decimal t = p * q;
答案 2 :(得分:1)
您不能将十进制字符串转换为整数。
将int
更改为double
或decimal
s
Line 15: protected void Button1_Click(object sender, EventArgs e)
Line 16: {
Line 17: decimal p = Convert.ToDecimal(HourlyWage.Text);
Line 18: decimal q = Convert.ToDecimal(HoursPerWeek.Text);
Line 19: decimal t = p * q;
答案 3 :(得分:1)
问题:您正在将小数值解析为Integer
。
解决方案:您需要使用以下任一方法正确地传递decimal
值。
decimal.Parse()
decimal.TryParse()
Convert.ToDecimal()
试试这个:decimal.Parse()
decimal p = decimal.Parse(HourlyWage.Text, CultureInfo.InvariantCulture);
decimal q = decimal.Parse(HoursPerWeek.Text, CultureInfo.InvariantCulture);