C# Dezimalstellen mit integer-Operatoren
Also ich habe diesen code:
p.Value = 1;
decimal avg = p.Value * 100 / 10000;
string prntout = p.Key + " : " + avg.ToString();
Console.WriteLine(prntout);
Aber das Programm druckt 0, anstelle von 0,01. p.Wert ist ein int. Wie behebe ich das?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ändern der Literale in eine Dezimalzahl:
Nun, zu erklären, warum das funktioniert:
Können Prozess der ursprünglichen Linie eine operation zu einem Zeitpunkt, zu ersetzen-1 für p.Wert:
Durch verändern 100 bis 100m, es ist jetzt:
m
werden, die vermutlich für Geld.Den Ausdruck
p.Value * 100 /10000
ist nur die Verwendung von integer-Typen, also wertet nach integer-division Regeln.Änderung eine (oder mehrere) der Parameter in einen Dezimalwert und es wird wie erwartet ausgeführt:
Versuchen Sie dies:
zu
Ihrem vorherigen Versionen alle zahlen.
Wenn P.-Wert ist eine ganze Zahl, werden Sie wahrscheinlich verlieren die Fraktion auf diese Linie:
decimal avg = p.Wert * 100 /10000;
Damit Sie dies tun können:
decimal avg = (decimal)P. Wert * 100 /10000;
Hoffe, es hilft.