799 Stimmen

Wie konvertiert man eine Dezimalzahl in ein Double in C#?

Ich möchte eine Track-Bar zu ändern. Form der Opazität.

Dies ist mein Code:

decimal trans = trackBar1.Value / 5000;
this.Opacity = trans;

Beim Erstellen der Anwendung wird folgende Fehlermeldung angezeigt:

Cannot implicitly convert type decimal to double

Ich habe versucht, mit trans y double aber dann die Control funktioniert nicht. Dieser Code funktionierte gut in einem früheren VB.NET-Projekt.

20 Stimmen

Außerdem kann Decimal keinen so großen Wert wie Double darstellen. Decimal kann nur bis zu +/-7.9228162514264337593543950335E+28 gehen, während Double bis zu +/-1.79769313486232E+308 gehen kann.

4 Stimmen

@TraumaPony es ist ein trackbar . Es ist unwahrscheinlich, dass jemals ein so hoher Wert für trackbar

6 Stimmen

Mir wurde immer gesagt, es sei besser, mit 0,0002 zu multiplizieren als durch 5000 zu teilen.

54voto

Darryl Punkte 559

Desde Opacity ein Double-Wert ist, würde ich von vornherein einen Double-Wert verwenden und überhaupt nicht casten, aber achten Sie darauf, dass Sie beim Dividieren einen Double-Wert verwenden, damit Sie keine Präzision verlieren

Opacity = trackBar1.Value / 5000.0;

53voto

Danny Fox Punkte 34803

Das ist die beste Lösung:

this.Opacity = decimal.ToDouble(trackBar1.Value/5000);

2voto

Arnold Brown Punkte 1232

Versuchen Sie das -

// Dezimalwerte

decimal d1 = 3234.3434m;

// Umrechnung in Double

double r1 = Decimal.ToDouble(d1);

CodeJaeger.com

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.

Powered by:

X