How can I convert decimal? to decimal

后端 未结 5 1016
-上瘾入骨i
-上瘾入骨i 2021-02-02 05:31

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

相关标签:
5条回答
  • 2021-02-02 05:59

    You can use.

    decimal? v = 2;

    decimal v2 = Convert.ToDecimal(v);

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

    0 讨论(0)
  • 2021-02-02 06:06

    Try using the ?? operator:

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

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

    0 讨论(0)
  • 2021-02-02 06:07

    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
    
    0 讨论(0)
  • 2021-02-02 06:07

    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;
    
    0 讨论(0)
  • 2021-02-02 06:08

    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.

    0 讨论(0)
提交回复
热议问题