gpt4 book ai didi

c# - 添加 double 附加而不是求和

转载 作者:行者123 更新时间:2023-11-30 21:30:01 25 4
gpt4 key购买 nike

我正在使用计算器,每当我的计算器将一个数字相加时,它只是将它们连接在一起。

这方面的一个例子是 3+5,它给我 35。我将数字转换为 double ,它仍然给我 35。这是我的代码:

Console.Write("Enter a Number: ");
double num1 = Convert.ToDouble(Console.ReadLine());

Console.Write("Enter a Operator: ");
string op = Console.ReadLine();

Console.Write("Enter a Number: ");
double num2 = Convert.ToDouble(Console.ReadLine());

if (op == "+")
{
Console.WriteLine(num1 + " plus " + num2 + " is " + num1 + num2);
}

Console.ReadLine();

感谢您查看我的帖子,祝您有愉快的一天。

最佳答案

因为使用 + 的表达式中包含字符串,并且由于这些字符串参数在该表达式中出现的顺序,C# 编译器会处理 + 运算符作为字符串连接。

更详细地说:+ 被解释为字符串连接,因为表达式是从左到右求值的。第一个计算的术语是 num1 + "plus "。由于涉及字符串,因此第一个 + 被视为字符串连接的运算符。将第一个项评估为字符串后,第二个和后面的 + 每个都带有各自的第二个参数,然后也被视为字符串连接,因为每个(部分)项的左侧始终是评估为一个字符串。

修复代码的“廉价”方法是使用括号来帮助编译器区分算术运算符和字符串连接运算符:

Console.WriteLine(num1 + " plus " + num2 + " is " + ( num1 + num2 ) );

通过使用字符串插值(注意字符串前面的 $ 符号)可以实现一种更安全、更易读的输出方式,它可以方便地去掉 + 运算符混淆:

Console.WriteLine($"{num1} plus {num2} is {num1 + num2}");

(感谢@AlexeiLevenkov 指出后者)

关于c# - 添加 double 附加而不是求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54857924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com