2017-02-21 4 views
1

umgehen Ich habe einen NumericUpDown und stellen Sie die Dezimalstellen auf Eigenschaften bis 3 so wurde es 0.000C# - Wie mit dezimal

Hier ist der Code

Decimal inputGrossWeight = numGrossWeight.Value; 

if (inputGrossWeight = 0.000) 
{ 
    MessageBox.Show("Gross Weight must be filled!"); 
} 
else 
{ 
    Data newData = new Data(); 
    newData.grossWeight = inputGrossWeight; 
} 

Anmerkung:

  • numGrossWeight ist der Name von numericUpDown

  • BruttoWeight ist der Spaltenname in meiner Datenbank

und speichere ich es in der Datenbank mit dem Datentyp float

Als Benutzertyp in 2.365 es 2.365 zu zu Datenbank gespeichert werden.

Ich habe viele Möglichkeiten versucht, mit und es mir eine Fehlermeldung geben:

Cannot implicitly convert type 'decimal' to 'double'. An explicit conversion exists (are you missing a cast?)

Literal of type double cannot be implicitly converted to type 'decimal'; use an 'M' suffix to create a literal of this type

Was ist falsch mit meinem Code?

+5

Erstes Problem: Sie verwenden '=', wenn Sie '==' wollen. Zweites Problem: Sie verwenden '0.000', was ein' doppeltes' Literal ist; Sie wollen '0,000m' haben, also ist es ein 'Dezimal'-Literal, genau wie der zweite Compilerfehler Ihnen sagt. (Es ist nicht klar, welche Zeile den ersten Fehler verursacht ...) –

+4

die Fehlermeldung sagt Ihnen genau, was ist falsch –

+0

Der Fehler ist klar, was zu tun ist, nicht wahr? "Eine explizite Konvertierung existiert (fehlt Ihnen ein Cast?)" – HimBromBeere

Antwort

4

Sie versuchen, in Ihrer if Anweisung zuzuweisen.

versuchen, dies eher

if (inputGrossWeight == 0m) 

Als Jon Skeet in seinem Kommentar erwähnt, durch die m Hinzufügen Sie stellen sicher, dass Sie ein decimal wörtlichen und damit zu vergleichen Äpfel mit Äpfeln verwenden.

+0

es funktioniert mit Hinzufügen von "m" auf, aber ich verstehe immer noch nicht, was "m" zu? –

+0

Das Hinzufügen des 'm' macht es zu einem dezimalen Literal, wie Jon Skeet erwähnte. Wenn Sie es nicht haben, ist es ein doppeltes Literal. –

+1

danke Mann für die Erklärung –