wake-up-neo.com

Wie kann ich dezimal konvertieren? zu dezimal

vielleicht ist es eine einfache Frage, aber ich versuche alle Konvertierungsmethode! und es hat immer noch fehler! könntest du mir helfen?

dezimal? (nullable decimal) bis decimal

45
Negar

Es gibt viele Möglichkeiten ...

decimal? x = ...

decimal a = (decimal)x; // works; throws if x was null
decimal b = x ?? 123M; // works; defaults to 123M if x was null
decimal c = x.Value; // works; throws if x was null
decimal d = x.GetValueOrDefault(); // works; defaults to 0M if x was null
decimal e = x.GetValueOrDefault(123M); // works; defaults to 123M if x was null
object o = x; // this is not the ideal usage!
decimal f = (decimal)o; // works; throws if x was null; boxes otherwise
97
Marc Gravell

Versuchen Sie es mit dem ?? Operator:

decimal? value=12;
decimal value2=value??0;

0 ist der gewünschte Wert, wenn decimal? ist Null.

25
Carles Company

Sie müssen nicht convert einen nullfähigen Typ angeben, um seinen Wert zu erhalten.

Sie nutzen einfach die Eigenschaften HasValue und Value , die von Nullable<T>.

Beispielsweise:

Decimal? largeValue = 5830.25M;

if (largeValue.HasValue)
{
    Console.WriteLine("The value of largeNumber is {0:C}.", largeValue.Value);
}
else
{
    Console.WriteLine("The value of largeNumber is not defined.");
}

Alternativ können Sie den Operator Null-Koaleszenz in C # 2.0 oder höher als Verknüpfung verwenden.

11
Cody Gray

Es hängt davon ab, was Sie tun möchten, wenn der decimal? ist null, da ein decimal nicht null sein kann. Wenn Sie den Standardwert auf 0 setzen möchten, können Sie diesen Code verwenden (mit dem Operator null coalescing):

decimal? nullabledecimal = 12;

decimal myDecimal = nullabledecimal ?? 0;
3