2010-11-20 23 views

Antwort

4

ich auf .NET 2.0 getestet haben und .NET 4.0, und ich bekomme dec als 123.4, wie erwartet. Bist du dir sicher, dass du den Breakpoint nicht zu hoch hast?

+0

Danke. Ich teste es erneut und es scheint als ob ein seltsames Verhalten von Visual Studio/Debugger. Wenn ich nach dem Ausführen der zweiten Zeile auf dec-Variable schwebe, sagt es, dass dec null ist, aber der tatsächliche dec-Wert ist wie erwartet 123,4 (zum Beispiel wenn ich es in die Konsole schreibe). Das lässt mich zuerst glauben, dass es nicht funktioniert. –

0

Meine beste Schätzung ist, dass die implizite Umwandlung, die in der Umwandlung aufgerufen wird, fehlschlägt, wobei dec mit einem Nullwert zurückbleibt, und nicht mit dem abgeschnittenen/gerundeten Wert, den Sie erwarten.

2

Dezember ist nicht null, seine 123,4

0

Es ist nicht null. Sie müssen anderswo einen Fehler haben.

1

Ich weiß, dass dies die gleiche Sache zeigen wird. Ihr Code gibt mir wie erwartet 123,4. Es funktioniert gut.

Ich kann nur sagen versuchen :) aber das Ergebnis ist dasselbe: 123,4

double? d = 123.4; 
decimal? dec = (decimal?)d.Value;