Warum gibt mein C#-Code 0 zurück, wenn es 50 sein muss?
double c = (1 / 2) * 100;
Console.WriteLine(c);
Was ist los?
Warum gibt mein C#-Code 0 zurück, wenn es 50 sein muss?
double c = (1 / 2) * 100;
Console.WriteLine(c);
Was ist los?
1
, 2
y 100
in Ihrem Beispiel, sind alle int
Literale. In C# gibt die Ganzzahldivision ganze Zahlen zurück und ignoriert den Rest. Erst nach der Berechnung von 1/2 (=0) und der Multiplikation mit 100 (=0) wird das Ergebnis in double
(1.0/2) * 100
würde zu dem erwarteten Ergebnis führen, da nun 1.0
ist eine double
und erzwingt die Umwandlung der anderen Literale in double
s auch vor der Durchführung der Berechnungen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.