下面的代码串联了double变量。
例如第一个数字是2
其次是3
它像这样2+3;
添加它们
23
using System;
public static class Program
{
public static void Main()
{
double num01;
double num02;
Console.WriteLine("Add");
Console.Write("type a number: ");
num01 = Convert.ToInt32(Console.ReadLine());
Console.Write("type another number: ");
num02 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("the result is " + num01 + num02);
Console.ReadKey();
}
}
答案 0 :(得分:1)
您尚未将2个整数加在一起,并且给字符串加上了其他2个数字。
字符串连接也很慢。您应该使用string.Format或字符串插值。
Console.WriteLine(string.Format("the result is {0}", num01 + num02) );
或
Console.WriteLine($"the result is {num01 + num02}");
答案 1 :(得分:1)
原因是正在添加表达式"the result is " + num01 + num02
,其中包括string
,这使整个操作具有连续性,而不是数字相加!如果+
运算符的至少一个操作数是字符串,则将其串联。
此外,所有其他操作数都将转换为字符串,因此您的数字将转换为字符串,然后进行串联。
为避免这种情况,请强制执行操作顺序,因此首先要加上数字(例如,已经在其他答案中显示):"the result is " + (num01 + num02)
现在它将首先对两个数字求和,然后与给定的string
连接。
答案 2 :(得分:0)
这是怎么回事:
"the result is " + num01 + num02
我们有
"the result is " + num01
,即"the result is 1"
(向double
添加string
)"the result is 1" + num02
,即"the result is 12"
(向字符串中添加double
)您能做什么:放入(..)
并得到"the result is " + (num01 + num02)
:
num01 + num0
,即3
(加上两个double
)"the result is " + 3
,即"the result is 3"
(向double
添加string
)因此您可以放(...)
Console.WriteLine("the result is " + (num01 + num02));
或(更好的方法)使用字符串插值,然后让.net为您计算总和:
Console.WriteLine($"the result is {num01 + num02}");
或格式:
Console.WriteLine("the result is {0}", num01 + num02);
答案 3 :(得分:0)
如果在数字的总和后加上括号,则代码可以正常工作
double num01;
double num02;
Console.WriteLine("Add");
Console.Write("type a number: ");
num01 = Convert.ToInt32(Console.ReadLine());
Console.Write("type another number: ");
num02 = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("the result is " + (num01 + num02));
Console.ReadKey();
但毫无疑问,最佳实践是:
string.Format
答案 4 :(得分:0)
“ 正在像2 + 3这样添加它们; 23 ”
这是因为您在将+
和2
视为字符串并且使用字符串3
的情况下使用+
始终执行串联,因此结果{{ 1}}
您需要做什么来解决问题?
23
以上解决方案为何起作用?
简短答案: 操作员优先 。括号具有更高的优先级,并且首先被评估。发生这种情况时,将num01和num02视为数字并进行加法运算。现在,该总和值被视为Console.WriteLine("the result is " + (num01 + num02) );
中的字符串+