Ich habe versucht, die Lösung mehrere Male zu kompilieren. Aber es kompiliert nicht, wenn ich double als variablen Typ verwende. Der Code ist:
Arthetic Operation kann zwischen Int und Dezimal aber nicht zwischen Dezimal und Doppel in C# Konsole App
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();
}
}
Der Fehler, den ich immer bin beim Kompilieren ist:
Fehler CS0019: Operator '< =' nicht auf die Operanden des Typs angewendet werden kann 'double' und ' Dezimal '
Fehler CS0019: Operator'> 'kann nicht auf Operanden vom Typ' double 'und' decimal 'angewendet werden Fehler CS0019: Operator' < = 'kann nicht auf Operanden vom Typ' double 'und' decimal 'angewendet werden
Aber wenn ich int oder dezimal verwende statt Doppel als Variablentyp der Progamm kompiliert und Fein arbeiten.
Die Fehlermeldung sagt genau das, was falsch ist. Double kann nicht mit Dezimal verglichen werden. Vergleichen Sie es also mit etwas anderem, wie einem anderen Doppel. –
Nicht so offensichtlich, wenn Sie nicht wissen, die shorthands 'm',' d', 'ul', etc. @RaymondChen –
@PatrickHofman gut das m Suffix war im ursprünglichen Programm, so nehme ich an, sie wissen, was es bedeutet zu sehen, wie sie es geschrieben haben. –