Negar
Negar

Reputation: 906

How can I convert decimal? to decimal

may be it is a simple question but I'm try all of conversion method! and it still has error! would you help me?

decimal? (nullable decimal) to decimal

Upvotes: 68

Views: 109238

Answers (5)

Marc Gravell
Marc Gravell

Reputation: 1062512

There's plenty of 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

Upvotes: 122

curlackhacker
curlackhacker

Reputation: 465

You can use.

decimal? v = 2;

decimal v2 = Convert.ToDecimal(v);

If the value is null (v), it will be converted to 0.

Upvotes: -2

Carles Company
Carles Company

Reputation: 7216

Try using the ?? operator:

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

0 is the value you want when the decimal? is null.

Upvotes: 63

Cody Gray
Cody Gray

Reputation: 244692

You don't need to convert a nullable type to obtain its value.

You simply take advantage of the HasValue and Value properties exposed by Nullable<T>.

For example:

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

Alternatively, you can use the null coalescing operator in C# 2.0 or later as a shortcut.

Upvotes: 15

&#216;yvind Br&#229;then
&#216;yvind Br&#229;then

Reputation: 60694

It depends what you want to do if the decimal? is null, since a decimal can't be null. If you want to default that to 0, you can use this code (using the null coalescing operator):

decimal? nullabledecimal = 12;

decimal myDecimal = nullabledecimal ?? 0;

Upvotes: 5

Related Questions