我正在构建这三个文本框,如果填写了两个文本框,那么当我输入10 + 10时,将显示总和。结果是1010.有人可以帮我这个吗?
这是我的代码:
JPanel
答案 0 :(得分:2)
这是var orders = from order in ctx.Order
join orderItem in ctx.OrderItem
on order.OrderId equals orderItem.OrderId
select new
{
order.OrderDt,
Sku = (oi == null) ? null : oi.Sku,
Qty = (oi == null) ? (int?) null : oi.Qty
};
运算符的神奇(多态)。如果操作数是数字类型(int,long,double),它将添加两个操作数的值,如果它们是字符串类型,或者甚至是一个字符串和第二个整数(就像你的情况一样),它将连接两个操作数。在您的情况下,转换后的+
会产生问题。您将通过从该行中删除该结果来获得预期结果。
附加注释:如果输入文本不可转换,.ToString()
将抛出Convert.ToInt32
,因此必须使用FormatException
将文本转换为整数。所以代码看起来像这样:
int.TryParse
答案 1 :(得分:2)
在声明末尾删除toString
。
textBoxTotalAmount.Text = (Convert.ToInt32(textBoxTranspo.Text) + Convert.ToInt32(textBoxDaily.Text))
答案 2 :(得分:1)
这样做:
int ans = 0;
ans = Convert.ToInt32(textBoxTranspo.Text) + Convert.ToInt32(textBoxDaily.Text);
textBoxTotalAmount.Text = ans.ToString();
编辑:
这只是创建干净/整洁且更易读的代码的一种方法。其他人回答的方式
textBoxTotalAmount.Text = (Convert.ToInt32(textBoxTranspo.Text) + Convert.ToInt32(textBoxDaily.Text)).ToString();
也是正确的,但如果其他程序员会阅读代码,那么我写的第一个代码更具可读性,在这种情况下更有效。
你得到了1010,因为你错放了.ToString()
答案 3 :(得分:1)
也许应该是:
textBoxTotalAmount.Text = (Convert.ToInt32(textBoxTranspo.Text) + Convert.ToInt32(textBoxDaily.Text)).ToString();
答案 4 :(得分:1)
为了避免混淆,首先,尝试将文本框的值转换为int,如果成功则将其放入相应的变量中,如果不成功则输出无效的提示。
int input1 = 0;
int input2 = 0;
try
{
input1 = Convert.ToInt32(textBoxTranspo.Text);
input2 = Convert.ToInt32(textBoxDaily.Text);
ans = input1 + input2;
if (!string.IsNullOrEmpty(textBoxTranspo.Text) && !string.IsNullOrEmpty(textBoxDaily.Text))
{
textBoxTotalAmount.Text = ans.ToString();
}
}
catch (Exception)
{
textBoxTotalAmount.Text = "Invalid input";
}