Heim >Backend-Entwicklung >C++ >Warum schlägt die implizite Konvertierung fehl, wenn in C# eine Dezimalzahl einem Double zugewiesen wird?
Implizite Konvertierung von Decimal in Double in C#
Beim Versuch, eine Dezimalvariable einer Double-Variablen zuzuweisen, wie im Codeausschnitt zu sehen Unten kann ein Kompilierungsfehler auftreten:
decimal trans = trackBar1.Value / 5000; this.Opacity = trans;
Die Fehlermeldung weist normalerweise auf einen Fehler bei der impliziten Konvertierung von a hin decimal-Typ in einen Double-Typ.
Um dieses Problem zu beheben, kann eine explizite Umwandlung in Double verwendet werden:
double trans = (double) trackBar1.Value / 5000.0; this.Opacity = trans;
Alternativ kann die Konstante mithilfe des Suffixes explizit als Double identifiziert werden .0:
double trans = trackBar1.Value / 5000.0;
Eine andere Möglichkeit besteht darin, das Suffix d zu verwenden, um a anzugeben double:
double trans = trackBar1.Value / 5000d;
Durch die explizite Identifizierung der Konstante als Double kann der Compiler die Konvertierung korrekt durchführen, ohne dass eine explizite Umwandlung erforderlich ist.
Das obige ist der detaillierte Inhalt vonWarum schlägt die implizite Konvertierung fehl, wenn in C# eine Dezimalzahl einem Double zugewiesen wird?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!