web-dev-qa-db-fra.com

Comment convertir des décimales? en décimal

c'est peut-être une question simple mais j'essaie toute la méthode de conversion! et il a encore une erreur! voulez-vous me aider?

décimal? (décimal nullable) en décimal

45
Negar

Il y a plein d'options ...

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

Essayez d'utiliser le ?? opérateur:

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

0 est la valeur souhaitée lorsque le decimal? est nul.

25
Carles Company

Vous n'avez pas besoin de convertir un type nullable pour obtenir sa valeur.

Vous profitez simplement des propriétés HasValue et Value exposées par Nullable<T>.

Par exemple:

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.");
}

Alternativement, vous pouvez utiliser opérateur de coalescence nul en C # 2.0 ou version ultérieure comme raccourci.

11
Cody Gray

Cela dépend de ce que vous voulez faire si le decimal? est null, car un decimal ne peut pas être null. Si vous voulez par défaut que 0, vous pouvez utiliser ce code (en utilisant opérateur de coalescence nul):

decimal? nullabledecimal = 12;

decimal myDecimal = nullabledecimal ?? 0;
3
Øyvind Bråthen