我怎样才能转换小数? 到十进制

可能是一个简单的问题,但我尝试所有的转换方法! 它仍然有错误! 你能帮我吗?

十进制? (可为空的十进制)为十进制

有很多select

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 

尝试使用?? 运营商:

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

0是decimal?时你想要的值decimal? 一片空白。

您不需要转换可空types以获取其值。

您只需利用由Nullable<T>公开的HasValueValue属性。

例如:

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

或者,您可以使用C#2.0或更高版本中的空合并运算符作为快捷方式。

这取决于你想要做什么,如果decimal?null ,因为decimal不能为null 。 如果要将其默认为0,则可以使用此代码(使用空合并运算符 ):

 decimal? nullabledecimal = 12; decimal myDecimal = nullabledecimal ?? 0; 

您可以使用。

decimal? v = 2;

十进制v2 = Convert.ToDecimal(v);

如果值为空(v),则它将被转换为0。