【发布时间】:2016-05-30 15:39:05
【问题描述】:
我多次尝试编译解决方案。但是当我使用 double 作为变量类型时它没有编译。代码是:
using System;
class program
{
static void Main()
{
bool Flag=true;
string action = "Null";
double priceGain=0;
Console.WriteLine("press 'q' or write \"quit\" to exit the application");
while(Flag==true)
{
Console.WriteLine("What is the price Gain? ");
string input=Console.ReadLine();
if(double.TryParse(input,out priceGain))
{
if (priceGain <= 2m)
{
action ="Sell";
}
else if(priceGain > 2m && priceGain <= 3m)
{
action="Do Nothing";
}
else
{
action="Buy";
}
Console.WriteLine(action);
}
else if (input.ToLower()=="q" || input.ToLower() =="quit")
{
Environment.Exit(0);
}
else
{
Console.WriteLine("Invalid Input! please enter a number");
}
}
Console.ReadKey();
}
}
我在编译时遇到的错误是:
错误 CS0019:运算符“ 错误 CS0019:运算符“>”不能应用于“double”和“decimal”类型的操作数
错误 CS0019:运算符“
但是当我使用 int 或 decimal 而不是 double 作为变量类型时,程序正在编译并且工作正常。
【问题讨论】:
-
错误信息准确地说明了问题所在。双精度不能与十进制比较。所以把它和别的东西比较一下,比如另一个双倍。
-
如果你不知道简写
m、d、ul等@RaymondChen,那就不太明显了 -
@PatrickHofman 以及 m 后缀在原始程序中,所以我假设他们在编写时知道这意味着什么。
-
其实我不太习惯使用速记。所以我正在用各种方式练习一个示例程序,并没有识别 m.
-
用
while (flag == true)代替while (flag)。