尝试在VS中运行此程序时遇到问题。有什么帮助吗?我得到的错误是:
运算符'<'不能应用于类型'double'和'decimal'的操作数
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Please enter your height (in metres).");
double height = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Please enter your weight (in kilograms).");
double weight = Convert.ToDouble(Console.ReadLine());
double kv_height = height * height;
double bmi = weight / kv_height;
Console.WriteLine("Your BMI is: " + bmi);
if(bmi < 18.5)
{
Console.WriteLine("(Underweight)");
}
***if(18.5 < bmi < 24.9)***
Console.ReadKey();
}
}
if (18.5 < bmi < 24.9)
导致错误。我是C#的新手,所以请原谅任何凌乱的代码。
答案 0 :(得分:2)
<
运算符是C#中的二进制运算符。这意味着它可以使用两个操作数-左侧操作数和右侧操作数。您的情况是从左侧开始进行评估,然后开始进行比较:
18.5 < bmi
这将产生bool
的结果-true
或false
。从本质上讲,该结果可以代替表达式:
true/false < 24.9
基本上,代码然后尝试对<
和bool
数据类型使用double
运算符。在C#中无法对此进行比较,因为bool
没有隐式转换为数字。
要解决此问题,您需要使用另一个二进制运算符-&&
并进行两个单独的比较:
18.5 < bmi && bmi < 24.9
如果两个条件均为true
,则整个表达式为true
。
答案 1 :(得分:0)
if(18.5 < bmi && bmi < 24.9)
在数学中,我们使用18.5