我试图多次编译解决方案。但是当我使用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:运算符'<='不能应用于类型为'double'和'decimal'的
操作数错误CS0019:运算符'>'无法应用于类型为'double'和'decimal'的
操作数错误CS0019:运算符'<= '不能应用于'double'和'decimal'类型的操作数
但是当我使用int或小数而不是double作为变量类型时,progam正在编译并且可以正常工作。
2m
是,decimal
因为m
是十进制的缩写。d
如果您想加倍,可以使用。
if (priceGain <= 2d)
decimal
并且int
可以在不铸件相比,但不是双,你都经历过。
请注意,您可能会遇到浮点数不精确的问题,因此,如果可以的话,请使用小数。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句